From 980c83f12406905a3978e6ba0e7976799f73e8e7 Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Sat, 22 Dec 2018 16:07:33 +0000 Subject: [PATCH 1/5] adds kangaroos --- .../hostile/retaliate/kangaroo.dm | 46 ++++++++++++++++++ icons/mob/animal.dmi | Bin 302461 -> 304746 bytes paradise.dme | 1 + 3 files changed, 47 insertions(+) create mode 100644 code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm new file mode 100644 index 00000000000..abaeb4b4349 --- /dev/null +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -0,0 +1,46 @@ +/mob/living/simple_animal/hostile/retaliate/kangaroo + name = "Kangaroo" + real_name = "Kangaroo" + voice_name = "unidentifiable voice" + desc = "A large marsupial herbivore. It has powerful hind legs, with nails that resemble long claws." + icon_state = "kangaroo" // Credit: FoS + icon_living = "kangaroo" + icon_dead = "kangaroo_dead" + icon_gib = "kangaroo_dead" + turns_per_move = 8 + response_help = "pets" + emote_hear = list("bark") + maxHealth = 200 + health = 200 + harm_intent_damage = 3 + melee_damage_lower = 5 // avg damage 12.5 without kick, (12.5+12.5+60)/3=25 with kick + melee_damage_upper = 20 + attacktext = "slashes" + attack_sound = 'sound/weapons/bladeslice.ogg' // they have nails that work like claws, so, slashing sound + atmos_requirements = list("min_oxy" = 5, "max_oxy" = 0, "min_tox" = 0, "max_tox" = 2, "min_co2" = 0, "max_co2" = 5, "min_n2" = 0, "max_n2" = 0) + move_to_delay = 4 // at 20ticks/sec, this is 5 tile/sec movespeed, about the same as a 'fast human'. + speed = -1 // '-1' converts to 1.5 total move delay, or 6.6 tiles/sec movespeed + var/attack_cycles = 0 + var/attack_cycles_max = 3 + +/mob/living/simple_animal/hostile/retaliate/kangaroo/New() + . = ..() + // Leap spell, player-only usage + AddSpell(new /obj/effect/proc_holder/spell/targeted/leap) + +/mob/living/simple_animal/hostile/retaliate/kangaroo/AttackingTarget() + if(client && a_intent != INTENT_HARM) + return ..() // Do not allow player-controlled roos on non-attack intents to 'prime' their kick by nuzzling people + attack_cycles++ + if(attack_cycles < attack_cycles_max) + // Most of the time, do a standard attack... + return ..() + // ... but on every attack_cycles_max attacks, do a powerful disemboweling kick attack instead + attack_cycles = 0 + attacktext = "VICIOUSLY KICKS" + melee_damage_lower = 60 + melee_damage_upper = 60 + . = ..() + attacktext = initial(attacktext) + melee_damage_lower = initial(melee_damage_lower) + melee_damage_upper = initial(melee_damage_upper) diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi index c82f0d6ccf35b38c9c5c21453e1a96236587afe9..54b8024f58e95f598749fc3e3e5618da12ce0e2f 100644 GIT binary patch delta 12449 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%0Ag(|OllJ(6#a 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 LDwip}eD{9<-t+`d delta 10146 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 diff --git a/paradise.dme b/paradise.dme index 711a157e457..2561dc94410 100644 --- a/paradise.dme +++ b/paradise.dme @@ -1878,6 +1878,7 @@ #include "code\modules\mob\living\simple_animal\hostile\retaliate\clown.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\drone.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\fish.dm" +#include "code\modules\mob\living\simple_animal\hostile\retaliate\kangaroo.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\pet.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\retaliate.dm" #include "code\modules\mob\living\simple_animal\hostile\retaliate\undead.dm" From e0a79c11b4653a77e96c5d4807a4c045ce90227f Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Sat, 22 Dec 2018 16:17:31 +0000 Subject: [PATCH 2/5] typo --- .../mob/living/simple_animal/hostile/retaliate/kangaroo.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm index abaeb4b4349..bcf6c4e0103 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -35,7 +35,7 @@ if(attack_cycles < attack_cycles_max) // Most of the time, do a standard attack... return ..() - // ... but on every attack_cycles_max attacks, do a powerful disemboweling kick attack instead + // ... but, every attack_cycles_max attacks, do a powerful disemboweling kick instead attack_cycles = 0 attacktext = "VICIOUSLY KICKS" melee_damage_lower = 60 From a98107b9719eb56a533a00cb0918bc384c6c8fac Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Mon, 24 Dec 2018 10:28:54 +0000 Subject: [PATCH 3/5] throw on kick --- .../simple_animal/hostile/retaliate/kangaroo.dm | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm index bcf6c4e0103..a87975b2320 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -10,8 +10,8 @@ turns_per_move = 8 response_help = "pets" emote_hear = list("bark") - maxHealth = 200 - health = 200 + maxHealth = 150 + health = 150 harm_intent_damage = 3 melee_damage_lower = 5 // avg damage 12.5 without kick, (12.5+12.5+60)/3=25 with kick melee_damage_upper = 20 @@ -41,6 +41,17 @@ melee_damage_lower = 60 melee_damage_upper = 60 . = ..() + + var/mob/living/L = target + if(istype(L)) + var/rookick_dir = get_dir(L, src) + var/turf/general_direction = get_edge_target_turf(L, rookick_dir) + L.visible_message("[L] is kicked hard!", "The kangaroo kick sends you flying mate!") + L.throw_at(general_direction, 10, 2) + else + log_debug("[src] error: non-living-type target") + attacktext = initial(attacktext) melee_damage_lower = initial(melee_damage_lower) melee_damage_upper = initial(melee_damage_upper) + From 72b335f8b015a1607256d08fd63bb8851955bff1 Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Mon, 24 Dec 2018 12:13:29 +0000 Subject: [PATCH 4/5] fixes kick direction --- .../mob/living/simple_animal/hostile/retaliate/kangaroo.dm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm index a87975b2320..c149f145d41 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -44,7 +44,7 @@ var/mob/living/L = target if(istype(L)) - var/rookick_dir = get_dir(L, src) + var/rookick_dir = get_dir(src, L) var/turf/general_direction = get_edge_target_turf(L, rookick_dir) L.visible_message("[L] is kicked hard!", "The kangaroo kick sends you flying mate!") L.throw_at(general_direction, 10, 2) From e48f659892403482598d945f706c512fc9888306 Mon Sep 17 00:00:00 2001 From: Kyep <16434066+Kyep@users.noreply.github.com> Date: Tue, 25 Dec 2018 17:44:56 +0000 Subject: [PATCH 5/5] anti corpse cheese prevention --- .../hostile/retaliate/kangaroo.dm | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm index c149f145d41..0bd75fa4185 100644 --- a/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm +++ b/code/modules/mob/living/simple_animal/hostile/retaliate/kangaroo.dm @@ -30,26 +30,31 @@ /mob/living/simple_animal/hostile/retaliate/kangaroo/AttackingTarget() if(client && a_intent != INTENT_HARM) - return ..() // Do not allow player-controlled roos on non-attack intents to 'prime' their kick by nuzzling people + return ..() // Do not allow player-controlled roos on non-attack intents to 'prime' their kick by nuzzling people. + + var/mob/living/L = target + if(!istype(L)) + return ..() // Do not do further checks if we somehow end up attacking something not alive (like a window). + + if(L.stat == DEAD) + return ..() // Do not allow player-controlled roos to prime their kick by attacking corpses. + attack_cycles++ if(attack_cycles < attack_cycles_max) // Most of the time, do a standard attack... return ..() - // ... but, every attack_cycles_max attacks, do a powerful disemboweling kick instead + + // ... but, every attack_cycles_max attacks on a living mob, do a powerful disemboweling kick instead attack_cycles = 0 attacktext = "VICIOUSLY KICKS" melee_damage_lower = 60 melee_damage_upper = 60 . = ..() - var/mob/living/L = target - if(istype(L)) - var/rookick_dir = get_dir(src, L) - var/turf/general_direction = get_edge_target_turf(L, rookick_dir) - L.visible_message("[L] is kicked hard!", "The kangaroo kick sends you flying mate!") - L.throw_at(general_direction, 10, 2) - else - log_debug("[src] error: non-living-type target") + var/rookick_dir = get_dir(src, L) + var/turf/general_direction = get_edge_target_turf(L, rookick_dir) + L.visible_message("[L] is kicked hard!", "The kangaroo kick sends you flying mate!") + L.throw_at(general_direction, 10, 2) attacktext = initial(attacktext) melee_damage_lower = initial(melee_damage_lower)