diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 8837919167a..5acf61d6813 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -25,8 +25,8 @@ min_n2 = 0 max_n2 = INFINITY attacktext = "punches" - maxHealth = 100000 //The spirit itself is invincible - health = 100000 + maxHealth = INFINITY //The spirit itself is invincible + health = INFINITY environment_smash = 0 melee_damage_lower = 15 melee_damage_upper = 15 @@ -41,21 +41,12 @@ var/tech_fluff_string = "BOOT SEQUENCE COMPLETE. ERROR MODULE LOADED. THIS SHOULDN'T HAPPEN. Submit a bug report!" var/bio_fluff_string = "Your scarabs fail to mutate. This shouldn't happen! Submit a bug report!" var/admin_fluff_string = "URK URF!"//the wheels on the bus... + var/adminseal = FALSE /mob/living/simple_animal/hostile/guardian/Life() //Dies if the summoner dies ..() if(summoner) if(summoner.stat == DEAD) - // src << "Your summoner has died!" - // visible_message("The [src] dies along with its user!") - // summoner.visible_message("[summoner]'s body is completely consumed by the strain of sustaining [src]!") - // for(var/obj/item/W in summoner) - // if(!summoner.unEquip(W)) - // qdel(W) - //summoner.dust() - //ghostize() - //qdel(src) - //else src << "Your summoner has died!" visible_message("The [src] dies along with its user!") ghostize() @@ -106,18 +97,16 @@ /mob/living/simple_animal/hostile/guardian/gib() if(summoner) summoner << "Your [src] was blown up!" - summoner.gib() + summoner.Weaken(10)// your fermillier has died! ROLL FOR CON LOSS! ghostize() qdel(src) -/mob/living/simple_animal/hostile/guardian/start_pulling(var/atom/movable/AM) - return //no pulling things fo you! - //Manifest, Recall, Communicate /mob/living/simple_animal/hostile/guardian/proc/Manifest() if(cooldown > world.time) return + if(!summoner) return if(loc == summoner) loc = get_turf(summoner) src.client.eye = loc @@ -131,6 +120,7 @@ /mob/living/simple_animal/hostile/guardian/proc/Recall() if(cooldown > world.time) return + if(!summoner) return loc = summoner buckled = null cooldown = world.time + 30 @@ -271,13 +261,21 @@ /mob/living/simple_animal/hostile/guardian/punch/sealpunch + name = "Seal Sprit" + real_name = "Seal Sprit" + icon = 'icons/mob/animal.dmi' + icon_living = "seal" + icon_state = "seal" + attacktext = "slaps" + speak_emote = list("barks") melee_damage_lower = 0 melee_damage_upper = 0 melee_damage_type = STAMINA - damage_transfer = 0.2 + damage_transfer = 0 playstyle_string = "As a standard type you have no special abilities, but have a high damage resistance and a powerful attack capable of smashing through walls." environment_smash = 2 battlecry = "URK" + adminseal = TRUE /mob/living/simple_animal/hostile/guardian/punch/verb/Battlecry() set name = "Set Battlecry" @@ -318,12 +316,20 @@ var/toggle = FALSE /mob/living/simple_animal/hostile/guardian/healer/sealhealer + name = "Seal Sprit" + real_name = "Seal Sprit" + icon = 'icons/mob/animal.dmi' + icon_living = "seal" + icon_state = "seal" + attacktext = "slaps" + speak_emote = list("barks") a_intent = I_HARM friendly = "heals" speed = 0 melee_damage_lower = 0 melee_damage_upper = 0 melee_damage_type = STAMINA + adminseal = TRUE /mob/living/simple_animal/hostile/guardian/healer/New() @@ -353,6 +359,8 @@ a_intent = I_HARM speed = 0 damage_transfer = 0.7 + if(src.adminseal) + damage_transfer = 0 melee_damage_lower = 15 melee_damage_upper = 15 src << "You switch to combat mode." @@ -361,6 +369,8 @@ a_intent = I_HELP speed = 1 damage_transfer = 1 + if(src.adminseal) + damage_transfer = 0 melee_damage_lower = 0 melee_damage_upper = 0 src << "You switch to healing mode." @@ -602,7 +612,6 @@ var/ling_failure = "The deck refuses to respond to a souless creature such as you." var/list/possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive") var/random = TRUE - var/adminseal = FALSE /obj/item/weapon/guardiancreator/attack_self(mob/living/user) for(var/mob/living/simple_animal/hostile/guardian/G in living_mob_list) @@ -632,8 +641,6 @@ var/gaurdiantype = "Standard" if(random) gaurdiantype = pick(possible_guardians) - if(adminseal) - gaurdiantype = pick("StandardSeal","SupportSeal") else gaurdiantype = input(user, "Pick the type of [mob_name]", "[mob_name] Creation") as null|anything in possible_guardians var/pickedtype = /mob/living/simple_animal/hostile/guardian/punch @@ -646,18 +653,12 @@ if("Standard") pickedtype = /mob/living/simple_animal/hostile/guardian/punch - if("StandardSeal") - pickedtype = /mob/living/simple_animal/hostile/guardian/punch/sealpunch - if("Ranged") pickedtype = /mob/living/simple_animal/hostile/guardian/ranged if("Support") pickedtype = /mob/living/simple_animal/hostile/guardian/healer - if("SupportSeal") - pickedtype = /mob/living/simple_animal/hostile/guardian/healer/sealhealer - if("Explosive") pickedtype = /mob/living/simple_animal/hostile/guardian/bomb @@ -669,9 +670,8 @@ G << "While personally invincible, you will die if [user.real_name] does, and any damage dealt to you will have a portion passed on to them as you feed upon them to sustain yourself." G << "[G.playstyle_string]" user.verbs += /mob/living/proc/guardian_comm - if(!adminseal) - user.verbs += /mob/living/proc/guardian_recall - user.verbs += /mob/living/proc/guardian_reset + user.verbs += /mob/living/proc/guardian_recall + user.verbs += /mob/living/proc/guardian_reset switch (theme) if("magic") G.name = "[mob_name]" @@ -696,16 +696,6 @@ G.icon_state = "headcrab" G.attacktext = "swarms" G.speak_emote = list("chitters") - if("seal") - user << "[G.admin_fluff_string]." - G.name = "[mob_name]" - G.color = picked_color - G.real_name = "[mob_name]" - G.icon = 'icons/mob/animal.dmi' - G.icon_living = "seal" - G.icon_state = "seal" - G.attacktext = "slaps" - G.speak_emote = list("barks") /obj/item/weapon/guardiancreator/choose random = FALSE @@ -740,34 +730,6 @@ random = FALSE -/obj/item/weapon/guardiancreator/adminbus - name = "Avatar deck" - desc = "A mystical deck..oddly all the cards have a form of Bus on them." - icon = 'icons/obj/toy.dmi' - icon_state = "deck_syndicate_full" - theme = "seal" - mob_name = "Avatar" - use_message = "URK!" - used_message = "arf?" - failure_message = "..." - adminseal = TRUE - - -/obj/item/weapon/guardiancreator/adminbus/attack_self(mob/living/user) - - var/list/targets = list() - var/target = null - targets += getmobs() //Fill list, prompt user with list - target = input("Select a Player to guard!", "Player list", null, null) as null|anything in targets - - if(!target) return - var/mob/living/carbon/human/H = target - if(H.mind ) - spawn_guardian(H,user.key) - else - user << "Target has no mind. Aborting." - - /obj/item/weapon/paper/guardian name = "Holoparasite Guide" icon_state = "paper" @@ -892,4 +854,4 @@ /obj/screen/guardian/ToggleLight/Click() if(isguardian(usr)) var/mob/living/simple_animal/hostile/guardian/G = usr - G.ToggleLight() + G.ToggleLight() \ No newline at end of file diff --git a/icons/obj/projectiles.dmi b/icons/obj/projectiles.dmi index 0e067d1e6f2..578e722986d 100644 Binary files a/icons/obj/projectiles.dmi and b/icons/obj/projectiles.dmi differ