Untitled

 avatar
unknown
plain_text
a year ago
9.1 kB
4
Indexable
if snd.class == "Archivist" then

  snd.starting_attack()
  function snd.attack_function()
    if not snd.waiting.queue then
			local touse = {}
      local touse2 = {}
      local tohit = {}
      local string = "" 
      local biostring = ""
      local empowerstring = ""
      local impressstring = ""
      local call = "" 
      local bioessence = tonumber(gmcp.Char.Vitals.bio) 
      local hp = 100*(gmcp.Char.Vitals.hp/gmcp.Char.Vitals.maxhp)
      local mp = 100*(gmcp.Char.Vitals.mp/gmcp.Char.Vitals.maxmp)
      local physcount = 0
      for aff in pairs(snd.physical_affs) do
          if table.contains(snd.target_has, snd.physical_affs[aff]) then
              physcount = physcount + 1
          end
      end
      local mentcount = 0 
      for aff in pairs(snd.mental_affs) do
          if table.contains(snd.target_has, snd.mental_affs[aff]) then
              mentcount = mentcount + 1
          end
      end
      if bioessence > 0 then
        biostring = "bio stimulant"..snd.sep
      else 
        biostring = ""
      end
				
			snd.giving = {
				"dizziness",
        "faintness",
        "epilepsy",
        "shyness",
        "laxity",
        "lovers_effect",
        "peace",
        "magnanimity",
        "merciful",
        "masochism",
        "berserking",
        "recklessness",
			}
      
      snd.giving_venom = {
		  "paresis",
		  "clumsiness",
		  "sensitivity",
		  "asthma",
		  "left_leg_crippled",
		  "right_leg_crippled",
		  "left_arm_crippled",
		  "right_arm_crippled",
		  "vomiting",
		  "allergies",
		  }
	
			for i in pairs(snd.giving) do
				if not snd.checkAff(snd.giving[i]) then
					if not table.contains(touse, snd.giving[i]) then
						table.insert(touse, snd.giving[i])
					end
				end
			end
      
    for k in pairs(snd.giving_venom) do
		  if not snd.checkAff(snd.giving_venom[k]) then
        if not table.contains(touse2, snd.giving_venom[k]) then
          table.insert(touse2, snd.giving_venom[k])
        end
			end
		end
		for aff in pairs(touse2) do
		  table.insert(tohit, snd.effects[touse2[aff]])
		end
      
      echo("\nMutagen Given by: "..snd.mutmaster.." Bioessence: "..bioessence.." Physicals: "..physcount.." Mentals: "..mentcount)
			
      if snd.empowerready then
        if physcount >= 3 and mentcount >= 3 then
          empowerstring = "empower rafic"..snd.sep
        elseif snd.balance.madness then
          empowerstring = "empower jhako"..snd.sep
        elseif (snd.cureset == "akkari" or snd.cureset == "praenomen") then
          empowerstring = "empower ef'tig"..snd.sep
        elseif gmcp.Char.Vitals.blood < "50" and snd.bloodwork then
          empowerstring = "empower jherza"   
        else
          empowerstring = ""        
        end
      end
      
      if snd.my_impress == "" then
        impressstring = "geo impress swirl"..snd.sep
      elseif not snd.checkAff("paresis") and physcount >= 2 then
        if snd.my_impress ~= "Star" then
          impressstring = "geo impress star"..snd.sep
        end
      elseif not snd.checkAff("vomiting") and (mentcount > 4 and mentcount < 12) then
        if snd.my_impress ~= "Bloom" then
          impressstring = "geo impress bloom"..snd.sep
        end
      elseif not snd.checkAff("hypochondria") then
        if snd.my_impress ~= "Hex" then
          impressstring = "geo impress hex"..snd.sep
        end
      elseif not snd.checkAff("mental_disruption") then
        if snd.my_impress ~= "Swirl" then
          impressstring = "geo impress swirl"..snd.sep
        end
      end
      
      if snd.used.shield then
      	string = impressstring.."incite fork "..snd.target..snd.sep..biostring -- break shield
			elseif snd.theytumbling then
				string = impressstring.."elicit return "..snd.target.." 3"..biostring -- make them return in 3 seconds, no running
			elseif physcount >= 3 and mentcount >= 3 and snd.my_mutagen then -- only do this if your revelation is on them
        string = empowerstring..impressstring.."elicit unravel "..snd.target..snd.sep..biostring 
      --elseif hp <= 70 and not snd.knit and bioessence > 0 then
      --  string = impressstring.."bio knitting"
      --elseif hp <= 60 and bioessence > 1 and not snd.balance.ethereal then
      --  string = impressstring.."bio ethereal"
      --elseif mp < 60 and (snd.cureset == "akkari" or snd.cureset == "praenomen") then
      --  string = empowerstring..impressstring.."elicit stream "..snd.target..snd.sep
      --elseif gmcp.Char.Vitals.blood >= "50" and (snd.cureset == "akkari" or snd.cureset == "praenomen") and snd.bloodwork then
      --  string = empowerstring..impressstring.."elicit bloodwork"..snd.sep
      elseif snd.mutmaster == "" and not snd.my_mutagen and bioessence > 1 then
        string = impressstring.."bio infect "..snd.target.." with one"..snd.sep.."bio steroid"..snd.sep
      elseif physcount >= 1 and mentcount >= 4 then
        if bioessence > 0 and not snd.checkAff("addiction") then
          string = impressstring.."bio flare "..snd.target..snd.sep..biostring
        else
          if snd.my_incite ~= "Crescent" and snd.crescentable and not snd.checkAff("blackout") then
            string = impressstring.."incite crescent " ..snd.target..snd.sep..biostring
          elseif snd.checkAff("blackout") then
            string = impressstring.."jab "..snd.target.." "..tohit[1]..snd.sep.."bio steroid"..snd.sep
          elseif not snd.growth and bioessence > 2 then
            string = impressstring.."bio growth " ..snd.target..snd.sep..biostring 
          else
            if not snd.conjoin then
					     string = impressstring.."geo conjoin"..snd.sep.."incite "..snd.shape_attacks[touse[1]].." "..snd.target..snd.sep..biostring 
				    else
					     string = impressstring.."incite "..snd.shape_attacks[touse[1]].." "..snd.target..snd.sep
				    end
          end
        end
      --elseif snd.syncopateready and not snd.syncopatehave and mentcount > 4 and physcount > 0 and (snd.checkAff("lemniscate") or snd.checkAff("matrix")) then
      --  string = impressstring.."elicit syncopate " ..snd.target..snd.sep
      elseif mentcount > 5 and physcount < 2 and not snd.my_incite == "Hex"  then
				string = impressstring.."incite hex " ..snd.target..snd.sep 
			elseif snd.my_incite ~= "Crescent" and snd.crescentable and not snd.checkAff("blackout") and not snd.checkAff("lemniscate") then
        string = impressstring.."incite crescent " ..snd.target..snd.sep..biostring
      elseif not snd.checkAff("patterns") and snd.checksomeAffs({"lemniscate", "matrix"}, 1) then
				string = impressstring.."geo pattern "..snd.target..snd.sep..biostring	
      elseif snd.checkAff("lemniscate") and not snd.checkAff("matrix") then
				string = impressstring.."geo matrix " ..snd.target..snd.sep..biostring 
			elseif not snd.checksomeAffs({"sealing_circle", "sealing_triangle", "sealing_square"}, 2) then
        if not snd.checksomeAffs({"dementia", "paranoia", "hallucinations"}, 2) and snd.balance.madness then
          string = empowerstring..impressstring.."elicit madness "..snd.target..snd.sep..biostring 
        elseif (snd.checksomeAffs({"faintness","dizziness","shyness","laxity"}, 2)) and not snd.checkAff("lemniscate") then
				  string = impressstring.."incite lemniscate " ..snd.target..snd.sep..biostring
        elseif snd.checksomeAffs({"dizziness", "faintness", "epilepsy", "shyness"}, 4) and not snd.checkAff("sealing_square") then
				  string = impressstring.."geo sealing square " ..snd.target..snd.sep
			  elseif snd.checksomeAffs({"laxity", "lovers_effect", "peace", "magnanimity"}, 4) and not snd.checkAff("sealing_triangle") then
				  string = impressstring.."geo sealing triangle " ..snd.target..snd.sep..biostring 
			  elseif snd.checksomeAffs({"merciful", "masochism", "berserking", "recklessness"}, 4) and not snd.checkAff("sealing_circle") then
				  string = impressstring.."geo sealing circle " ..snd.target..snd.sep
        else
				  if not snd.conjoin then
					 string = impressstring.."geo conjoin"..snd.sep.."incite "..snd.shape_attacks[touse[1]].." "..snd.target..snd.sep..biostring 
           call = "wt Afflicting "..snd.target..": "..touse[1]
				  else
					 string = impressstring.."incite "..snd.shape_attacks[touse[1]].." "..snd.target..snd.sep 
           call = "wt Afflicting "..snd.target..": "..touse[1]
				  end
        end
			else
        string = impressstring.."incite crux " ..snd.target..snd.sep
      end

      if snd.toggles.affcalling and not snd.target_gone and call~= "" then
          string = call..snd.sep..string
      end

      if string ~= snd.last_attack and not snd.waiting.queue then
          snd.last_attack = string
          snd.attack(snd.last_attack)
          snd.waiting.queue = true
          tempTimer(snd.delay(), [[snd.waiting.queue = false]])
      end
 
    end
  end
  
snd.attack_function()

end
Editor is loading...
Leave a Comment