Untitled

 avatar
unknown
plain_text
a year ago
10 kB
5
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