From 5dea8ebca110601e3057b21438cb8b34d20ee4af Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 12:08:09 -0400 Subject: [PATCH 1/9] Adds assassin holoparasites Assassin holoparasites can go invisible, causing their next attack to do massive damage and ignore armor. The stealth will be broken by attacking or taking damage. --- code/_onclick/hud/alert.dm | 16 +++- code/game/objects/effects/overlays.dm | 4 +- .../living/simple_animal/guardian/guardian.dm | 7 +- .../simple_animal/guardian/types/assassin.dm | 90 ++++++++++++++++++ .../simple_animal/guardian/types/ranged.dm | 2 + code/modules/tooltip/tooltip.html | 3 + icons/mob/screen_alert.dmi | Bin 27508 -> 31763 bytes tgstation.dme | 1 + 8 files changed, 119 insertions(+), 4 deletions(-) create mode 100644 code/modules/mob/living/simple_animal/guardian/types/assassin.dm diff --git a/code/_onclick/hud/alert.dm b/code/_onclick/hud/alert.dm index 6b6e077206c..f6e74ef2aad 100644 --- a/code/_onclick/hud/alert.dm +++ b/code/_onclick/hud/alert.dm @@ -79,10 +79,11 @@ mouse_opacity = 1 var/timeout = 0 //If set to a number, this alert will clear itself after that many deciseconds var/severity = 0 + var/alerttooltipstyle = "" /obj/screen/alert/MouseEntered(location,control,params) - openToolTip(usr,src,params,title = name,content = desc) + openToolTip(usr,src,params,title = name,content = desc,theme = alerttooltipstyle) /obj/screen/alert/MouseExited() @@ -234,6 +235,19 @@ or shoot a gun to move around via Newton's 3rd Law of Motion." name = "Charge Ready" desc = "You are ready to charge at a location!" icon_state = "guardian_charge" + alerttooltipstyle = "parasite" + +/obj/screen/alert/canstealth + name = "Stealth Ready" + desc = "You are ready to enter stealth!" + icon_state = "guardian_canstealth" + alerttooltipstyle = "parasite" + +/obj/screen/alert/instealth + name = "In Stealth" + desc = "You are in stealth and your next attack will do bonus damage!" + icon_state = "guardian_instealth" + alerttooltipstyle = "parasite" //SILICONS diff --git a/code/game/objects/effects/overlays.dm b/code/game/objects/effects/overlays.dm index 9a6e194c02d..efc7a1ea732 100644 --- a/code/game/objects/effects/overlays.dm +++ b/code/game/objects/effects/overlays.dm @@ -73,13 +73,15 @@ /obj/effect/overlay/temp/guardian/phase/out icon_state = "phaseout" -/obj/effect/overlay/temp/guardian/charge +/obj/effect/overlay/temp/decoy + desc = "It's a decoy!" duration = 15 /obj/effect/overlay/temp/decoy/New(loc, atom/mimiced_atom) ..() alpha = initial(alpha) if(mimiced_atom) + name = mimiced_atom.name icon = mimiced_atom.icon icon_state = mimiced_atom.icon_state dir = mimiced_atom.dir diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 3ad2dca4f34..fd218fad8d0 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -247,7 +247,7 @@ var/global/list/parasites = list() //all currently existing/living guardians var/used_message = "All the cards seem to be blank now." var/failure_message = "..And draw a card! It's...blank? Maybe you should try again later." 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", "Lightning", "Protector", "Charger") + var/list/possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Lightning", "Protector", "Charger", "Assassin") var/random = TRUE /obj/item/weapon/guardiancreator/attack_self(mob/living/user) @@ -307,6 +307,9 @@ var/global/list/parasites = list() //all currently existing/living guardians if("Charger") pickedtype = /mob/living/simple_animal/hostile/guardian/charger + if("Assassin") + pickedtype = /mob/living/simple_animal/hostile/guardian/assassin + var/mob/living/simple_animal/hostile/guardian/G = new pickedtype(user) G.summoner = user G.key = key @@ -356,7 +359,7 @@ var/global/list/parasites = list() //all currently existing/living guardians ling_failure = "The holoparasites recoil in horror. They want nothing to do with a creature like you." /obj/item/weapon/guardiancreator/tech/choose/traitor - possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Lightning") + possible_guardians = list("Chaos", "Standard", "Ranged", "Support", "Explosive", "Lightning", "Assassin") /obj/item/weapon/guardiancreator/tech/choose random = FALSE diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm new file mode 100644 index 00000000000..f3a0aefbde8 --- /dev/null +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -0,0 +1,90 @@ +//Assassin +/mob/living/simple_animal/hostile/guardian/assassin + melee_damage_lower = 15 + melee_damage_upper = 15 + attacktext = "stabs" + damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) + playstyle_string = "As an assassin type you do medium damage, have no damage resistance, but can enter stealth, increasing the damage of your next attack and causing it to ignore armor. Stealth is broken if you attack or take damage." + magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin." + tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online." + var/toggle = FALSE + var/stealthcooldown = 150 + var/obj/screen/alert/canstealthalert + var/obj/screen/alert/instealthalert + +/mob/living/simple_animal/hostile/guardian/assassin/New() + ..() + stealthcooldown = 0 + +/mob/living/simple_animal/hostile/guardian/assassin/Life() + ..() + updatestealthalert() + +/mob/living/simple_animal/hostile/guardian/assassin/Stat() + ..() + if(statpanel("Status")) + if(stealthcooldown >= world.time) + stat(null, "Stealth Cooldown Remaining: [max(round((stealthcooldown - world.time)*0.1, 0.1), 0)] seconds") + +/mob/living/simple_animal/hostile/guardian/assassin/AttackingTarget() + if(..()) + if(toggle && (isliving(target) || istype(target, /obj/structure/window) || istype(target, /obj/structure/grille))) + ToggleMode(1) + +/mob/living/simple_animal/hostile/guardian/assassin/adjustHealth(amount) + . = ..() + if(. && toggle) + ToggleMode(1) + +/mob/living/simple_animal/hostile/guardian/assassin/Recall() + if(..() && toggle) + ToggleMode(0) + +/mob/living/simple_animal/hostile/guardian/assassin/ToggleMode(forced = 0) + if(src.loc != summoner) + if(toggle) + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) + armour_penetration = initial(armour_penetration) + environment_smash = initial(environment_smash) + alpha = initial(alpha) + if(!forced) + src << "You exit stealth." + updatestealthalert() + else + visible_message("\The [src] suddenly appears!") + stealthcooldown = world.time + initial(stealthcooldown) //we were forced out of stealth and go on cooldown + toggle = FALSE + else if(stealthcooldown <= world.time) + melee_damage_lower = 40 + melee_damage_upper = 40 + armour_penetration = 100 + environment_smash = 0 + PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(src)) + alpha = 10 + if(!forced) + src << "You enter stealth, empowering your next attack." + updatestealthalert() + toggle = TRUE + else if(!forced) + src << "You cannot yet enter stealth, wait another [max(round((stealthcooldown - world.time)*0.1, 0.1), 0)] seconds!" + else if(!forced) + src << "You have to be deployed to enter stealth!" + +/mob/living/simple_animal/hostile/guardian/assassin/proc/updatestealthalert() + if(stealthcooldown <= world.time) + if(toggle) + if(!instealthalert) + instealthalert = throw_alert("instealth", /obj/screen/alert/instealth) + clear_alert("canstealth") + canstealthalert = null + else + if(!canstealthalert) + canstealthalert = throw_alert("canstealth", /obj/screen/alert/canstealth) + clear_alert("instealth") + instealthalert = null + else + clear_alert("instealth") + instealthalert = null + clear_alert("canstealth") + canstealthalert = null diff --git a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm index c928c89cde8..81b9ac99b8b 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/ranged.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/ranged.dm @@ -31,6 +31,7 @@ ranged = 1 melee_damage_lower = 10 melee_damage_upper = 10 + environment_smash = initial(environment_smash) alpha = 255 range = 13 incorporeal_move = 0 @@ -40,6 +41,7 @@ ranged = 0 melee_damage_lower = 0 melee_damage_upper = 0 + environment_smash = 0 alpha = 60 range = 255 incorporeal_move = 1 diff --git a/code/modules/tooltip/tooltip.html b/code/modules/tooltip/tooltip.html index ede448c54fa..3f0e5784922 100644 --- a/code/modules/tooltip/tooltip.html +++ b/code/modules/tooltip/tooltip.html @@ -42,6 +42,9 @@ .blob .wrap {border-color: #2E2E2E;} .blob .content {color: #82ED00; border-color: #4E4C4A; background-color: #191918;} + .parasite .wrap {border-color: #88868D;} + .parasite .content {color: #EFEEEF; border-color: #35333A; background-color: #636169;} + .wraith .wrap {border-color: #492136;} .wraith .content {border-color: #331726; background-color: #471962;} diff --git a/icons/mob/screen_alert.dmi b/icons/mob/screen_alert.dmi index b7d64121636c0dceffd682d069d79e61f3e43659..a2fbd692c5388e73749d7a2c1c996a196119c7cd 100644 GIT binary patch literal 31763 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 I;)a3$2ZW*u+yDRo literal 27508 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

3uub(lANJ&2x5w%a?TJ3B!n+6)DDYvCV8tGqvV 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 diff --git a/tgstation.dme b/tgstation.dme index a336c8378d8..32d20cd1251 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -1343,6 +1343,7 @@ #include "code\modules\mob\living\simple_animal\friendly\drone\verbs.dm" #include "code\modules\mob\living\simple_animal\friendly\drone\visuals_icons.dm" #include "code\modules\mob\living\simple_animal\guardian\guardian.dm" +#include "code\modules\mob\living\simple_animal\guardian\types\assassin.dm" #include "code\modules\mob\living\simple_animal\guardian\types\charger.dm" #include "code\modules\mob\living\simple_animal\guardian\types\explosive.dm" #include "code\modules\mob\living\simple_animal\guardian\types\fire.dm" From c99d33ece0b7e3691e48da98f31146507aeec80d Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 12:17:07 -0400 Subject: [PATCH 2/9] more damage because it takes full damage --- .../mob/living/simple_animal/guardian/types/assassin.dm | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index f3a0aefbde8..527b2bcc132 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -1,10 +1,11 @@ //Assassin /mob/living/simple_animal/hostile/guardian/assassin - melee_damage_lower = 15 - melee_damage_upper = 15 - attacktext = "stabs" + melee_damage_lower = 20 + melee_damage_upper = 20 + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) - playstyle_string = "As an assassin type you do medium damage, have no damage resistance, but can enter stealth, increasing the damage of your next attack and causing it to ignore armor. Stealth is broken if you attack or take damage." + playstyle_string = "As an assassin type you do high damage and have no damage resistance, but can enter stealth, increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin." tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online." var/toggle = FALSE From e4f6a24da33dbf7055f243f226fa1ae4e299c58a Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 14:38:21 -0400 Subject: [PATCH 3/9] Guardians no longer damage other guardians that share a summoner. --- .../living/simple_animal/guardian/guardian.dm | 28 +++++++++++++++---- .../simple_animal/guardian/types/charger.dm | 2 ++ .../simple_animal/guardian/types/explosive.dm | 6 ++-- .../simple_animal/guardian/types/fire.dm | 4 +-- .../simple_animal/guardian/types/lightning.dm | 2 ++ 5 files changed, 32 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index fd218fad8d0..dbd83697a80 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -60,11 +60,11 @@ var/global/list/parasites = list() //all currently existing/living guardians summoner.dust() ghostize() qdel(src) - else + /*else src << "Your summoner has died!" visible_message("The [src] dies along with its user!") ghostize() - qdel(src) + qdel(src)*/ snapback() /mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range @@ -232,6 +232,22 @@ var/global/list/parasites = list() //all currently existing/living guardians src << "You deactivate your light." SetLuminosity(0) +////////parasite tracking/finding procs + +/mob/living/proc/hasparasites() //returns a list of guardians the mob is a summoner for + . = 0 //return nothing by default + var/list/guardians = list() + for(var/P in parasites) + var/mob/living/simple_animal/hostile/guardian/G = P + if(G.summoner == src) + guardians |= G + return guardians + +/mob/living/simple_animal/hostile/guardian/proc/hasmatchingsummoner(mob/living/simple_animal/hostile/guardian/G) //returns 1 if the summoner matches the target's summoner + if(istype(G) && G.summoner == summoner) + return 1 + else + return 0 ////////Creation @@ -249,12 +265,12 @@ var/global/list/parasites = list() //all currently existing/living guardians 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", "Lightning", "Protector", "Charger", "Assassin") var/random = TRUE + var/allowmultiple = 0 /obj/item/weapon/guardiancreator/attack_self(mob/living/user) - for(var/mob/living/simple_animal/hostile/guardian/G in living_mob_list) - if (G.summoner == user) - user << "You already have a [mob_name]!" - return + if(user.hasparasites() && !allowmultiple) + user << "You already have a [mob_name]!" + return if(user.mind && user.mind.changeling) user << "[ling_failure]" return diff --git a/code/modules/mob/living/simple_animal/guardian/types/charger.dm b/code/modules/mob/living/simple_animal/guardian/types/charger.dm index 90a38b46b19..9c9846e8450 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/charger.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/charger.dm @@ -52,6 +52,8 @@ if(isliving(A) && A != summoner) var/mob/living/L = A var/blocked = 0 + if(hasmatchingsummoner(A)) //if the summoner matches don't hurt them + blocked = 1 if(ishuman(A)) var/mob/living/carbon/human/H = A if(H.check_shields(90, "the [name]", src, attack_type = THROWN_PROJECTILE_ATTACK)) diff --git a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm index 0dfb1de9657..b0a08836acd 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/explosive.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/explosive.dm @@ -18,6 +18,8 @@ PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(M)) do_teleport(M, M, 10) for(var/mob/living/L in range(1, M)) + if(hasmatchingsummoner(L)) //if the summoner matches don't hurt them + continue if(L != src && L != summoner) L.apply_damage(15, BRUTE) PoolOrNew(/obj/effect/overlay/temp/explosion, get_turf(M)) @@ -42,7 +44,7 @@ name = "bomb" desc = "You shouldn't be seeing this!" var/obj/stored_obj - var/mob/living/spawner + var/mob/living/simple_animal/hostile/guardian/spawner /obj/item/weapon/guardian_bomb/proc/disguise(var/obj/A) @@ -66,7 +68,7 @@ qdel(src) /obj/item/weapon/guardian_bomb/Bump(atom/A) - if(isliving(A)) + if(isliving(A) && !spawner.hasmatchingsummoner(A)) detonate(A) else ..() diff --git a/code/modules/mob/living/simple_animal/guardian/types/fire.dm b/code/modules/mob/living/simple_animal/guardian/types/fire.dm index 62223bcd38d..3d988c86582 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/fire.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/fire.dm @@ -20,7 +20,7 @@ /mob/living/simple_animal/hostile/guardian/fire/AttackingTarget() if(..()) - if(ishuman(target)) + if(ishuman(target) && target != summoner) spawn(0) new /obj/effect/hallucination/delusion(target.loc,target,force_kind="custom",duration=200,skip_nearby=0, custom_icon = src.icon_state, custom_icon_file = src.icon) @@ -39,6 +39,6 @@ /mob/living/simple_animal/hostile/guardian/fire/proc/collision_ignite(AM as mob|obj) if(istype(AM, /mob/living/)) var/mob/living/M = AM - if(AM != summoner && M.fire_stacks < 7) + if(!hasmatchingsummoner(M) && M != summoner && M.fire_stacks < 7) M.fire_stacks = 7 M.IgniteMob() diff --git a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm index 2c279e85054..73ebb6eccf8 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/lightning.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/lightning.dm @@ -88,6 +88,8 @@ var/turf/T = turf for(var/mob/living/L in T) if(L.stat != DEAD && L != src && L != summoner) + if(hasmatchingsummoner(L)) //if the summoner matches don't hurt them + continue if(successfulshocks > 4) if(iscarbon(L)) var/mob/living/carbon/C = L From 9b8c469f3fdf8e6f8f27e0a645b40eb5f0729b5d Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 14:42:14 -0400 Subject: [PATCH 4/9] this really needs to be a var --- code/modules/mob/living/simple_animal/guardian/guardian.dm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index dbd83697a80..8f9f4508b40 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -60,11 +60,11 @@ var/global/list/parasites = list() //all currently existing/living guardians summoner.dust() ghostize() qdel(src) - /*else + else src << "Your summoner has died!" visible_message("The [src] dies along with its user!") ghostize() - qdel(src)*/ + qdel(src) snapback() /mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range @@ -244,7 +244,7 @@ var/global/list/parasites = list() //all currently existing/living guardians return guardians /mob/living/simple_animal/hostile/guardian/proc/hasmatchingsummoner(mob/living/simple_animal/hostile/guardian/G) //returns 1 if the summoner matches the target's summoner - if(istype(G) && G.summoner == summoner) + if(istype(G) && G.summoner && G.summoner == summoner) return 1 else return 0 From b37af6f177fa855adf2376cea0896919bda928f1 Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 14:58:47 -0400 Subject: [PATCH 5/9] that doesn't even work --- code/modules/mob/living/simple_animal/guardian/guardian.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 8f9f4508b40..6221818fa77 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -235,7 +235,6 @@ var/global/list/parasites = list() //all currently existing/living guardians ////////parasite tracking/finding procs /mob/living/proc/hasparasites() //returns a list of guardians the mob is a summoner for - . = 0 //return nothing by default var/list/guardians = list() for(var/P in parasites) var/mob/living/simple_animal/hostile/guardian/G = P @@ -268,7 +267,8 @@ var/global/list/parasites = list() //all currently existing/living guardians var/allowmultiple = 0 /obj/item/weapon/guardiancreator/attack_self(mob/living/user) - if(user.hasparasites() && !allowmultiple) + var/list/guardians = user.hasparasites() + if(guardians.len && !allowmultiple) user << "You already have a [mob_name]!" return if(user.mind && user.mind.changeling) From 9595c5e3935d7a15b93e573460b2d2ca79573aac Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 16:46:30 -0400 Subject: [PATCH 6/9] >robustin has a good idea --- .../living/simple_animal/guardian/types/assassin.dm | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index 527b2bcc132..e9c36a0c70a 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -1,11 +1,11 @@ //Assassin /mob/living/simple_animal/hostile/guardian/assassin - melee_damage_lower = 20 - melee_damage_upper = 20 + melee_damage_lower = 10 + melee_damage_upper = 10 attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) - playstyle_string = "As an assassin type you do high damage and have no damage resistance, but can enter stealth, increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." + playstyle_string = "As an assassin type you do low damage and have no damage resistance, but can enter stealth, massively increasing the damage of your next attack and causing it to ignore armor. Stealth is broken when you attack or take damage." magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin." tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online." var/toggle = FALSE @@ -57,12 +57,12 @@ stealthcooldown = world.time + initial(stealthcooldown) //we were forced out of stealth and go on cooldown toggle = FALSE else if(stealthcooldown <= world.time) - melee_damage_lower = 40 - melee_damage_upper = 40 + melee_damage_lower = 60 + melee_damage_upper = 60 armour_penetration = 100 environment_smash = 0 PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(src)) - alpha = 10 + alpha = 15 if(!forced) src << "You enter stealth, empowering your next attack." updatestealthalert() From 06da199b4305e1b54a6caa2aee3e2f4b19aaa51c Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Thu, 24 Mar 2016 21:06:52 -0400 Subject: [PATCH 7/9] briefly cannot recall; changed damage to 50/13 --- .../mob/living/simple_animal/guardian/guardian.dm | 6 ++++++ .../living/simple_animal/guardian/types/assassin.dm | 13 +++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 6221818fa77..113c216d354 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -67,6 +67,12 @@ var/global/list/parasites = list() //all currently existing/living guardians qdel(src) snapback() +/mob/living/simple_animal/hostile/guardian/Stat() + ..() + if(statpanel("Status")) + if(cooldown >= world.time) + stat(null, "Manifest/Recall Cooldown Remaining: [max(round((cooldown - world.time)*0.1, 0.1), 0)] seconds") + /mob/living/simple_animal/hostile/guardian/Move() //Returns to summoner if they move out of range . = ..() snapback() diff --git a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm index e9c36a0c70a..9b0324e31fa 100644 --- a/code/modules/mob/living/simple_animal/guardian/types/assassin.dm +++ b/code/modules/mob/living/simple_animal/guardian/types/assassin.dm @@ -1,7 +1,7 @@ //Assassin /mob/living/simple_animal/hostile/guardian/assassin - melee_damage_lower = 10 - melee_damage_upper = 10 + melee_damage_lower = 13 + melee_damage_upper = 13 attacktext = "slashes" attack_sound = 'sound/weapons/bladeslice.ogg' damage_coeff = list(BRUTE = 1, BURN = 1, TOX = 1, CLONE = 1, STAMINA = 0, OXY = 1) @@ -9,7 +9,7 @@ magic_fluff_string = "..And draw the Space Ninja, a lethal, invisible assassin." tech_fluff_string = "Boot sequence complete. Assassin modules loaded. Holoparasite swarm online." var/toggle = FALSE - var/stealthcooldown = 150 + var/stealthcooldown = 200 var/obj/screen/alert/canstealthalert var/obj/screen/alert/instealthalert @@ -51,14 +51,15 @@ alpha = initial(alpha) if(!forced) src << "You exit stealth." - updatestealthalert() else visible_message("\The [src] suddenly appears!") stealthcooldown = world.time + initial(stealthcooldown) //we were forced out of stealth and go on cooldown + cooldown = world.time + 50 //can't recall for 5 seconds + updatestealthalert() toggle = FALSE else if(stealthcooldown <= world.time) - melee_damage_lower = 60 - melee_damage_upper = 60 + melee_damage_lower = 50 + melee_damage_upper = 50 armour_penetration = 100 environment_smash = 0 PoolOrNew(/obj/effect/overlay/temp/guardian/phase/out, get_turf(src)) From 15714b8a747b4a944c0fa4707c4b54afa61774b9 Mon Sep 17 00:00:00 2001 From: Nerd Lord Date: Fri, 25 Mar 2016 12:04:50 -0400 Subject: [PATCH 8/9] oh right the tiny paper thing --- .../modules/mob/living/simple_animal/guardian/guardian.dm | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 113c216d354..934511d52b6 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -394,15 +394,17 @@ var/global/list/parasites = list() //all currently existing/living guardians
Chaos: Ignites enemies on touch and causes them to hallucinate all nearby people as the parasite. Automatically extinguishes the user if they catch on fire.

- Standard:Devastating close combat attacks and high damage resist. Can smash through weak walls.
+ Standard: Devastating close combat attacks and high damage resist. Can smash through weak walls.

Ranged: Has two modes. Ranged; which fires a constant stream of weak, armor-ignoring projectiles. Scout; Cannot attack, but can move through walls and is quite hard to see. Can lay surveillance snares, which alert it when crossed, in either mode.

- Support:Has two modes. Combat; Medium power attacks and damage resist. Healer; Heals instead of attack, but has low damage resist and slow movement. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.
+ Support: Has two modes. Combat; Medium power attacks and damage resist. Healer; Heals instead of attack, but has low damage resist and slow movement. Can deploy a bluespace beacon and warp targets to it (including you) in either mode.

Explosive: High damage resist and medium power attack that may explosively teleport targets. Can turn any object, including objects too large to pick up, into a bomb, dealing explosive damage to the next person to touch it. The object will return to normal after the trap is triggered or after a delay.

- Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them.
+ Lightning: Attacks apply lightning chains to targets. Has a lightning chain to the user. Lightning chains shock everything near them, doing constant damage.
+
+ Assassin: Does low damage and takes full damage, but can enter stealth, causing its next attack to do massive damage and ignore armor. However, it becomes briefly unable to recall after attacking from stealth.
Date: Fri, 25 Mar 2016 20:15:21 -0400 Subject: [PATCH 9/9] there are better ways --- .../mob/living/simple_animal/guardian/guardian.dm | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/code/modules/mob/living/simple_animal/guardian/guardian.dm b/code/modules/mob/living/simple_animal/guardian/guardian.dm index 934511d52b6..1e27ce67aa4 100644 --- a/code/modules/mob/living/simple_animal/guardian/guardian.dm +++ b/code/modules/mob/living/simple_animal/guardian/guardian.dm @@ -241,18 +241,15 @@ var/global/list/parasites = list() //all currently existing/living guardians ////////parasite tracking/finding procs /mob/living/proc/hasparasites() //returns a list of guardians the mob is a summoner for - var/list/guardians = list() + . = list() for(var/P in parasites) var/mob/living/simple_animal/hostile/guardian/G = P if(G.summoner == src) - guardians |= G - return guardians + . |= G /mob/living/simple_animal/hostile/guardian/proc/hasmatchingsummoner(mob/living/simple_animal/hostile/guardian/G) //returns 1 if the summoner matches the target's summoner - if(istype(G) && G.summoner && G.summoner == summoner) - return 1 - else - return 0 + return (istype(G) && G.summoner == summoner) + ////////Creation