Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Interdimensional Rubber Duck #2702

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
4 changes: 4 additions & 0 deletions ModularTegustation/ego_weapons/ranged/ego_bullets/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -144,3 +144,7 @@
icon_state = "gaussstrong"
damage_type = RED_DAMAGE
damage = 65

/obj/projectile/ego_bullet/ego_squeak
name = "squeak"
damage = 7
15 changes: 14 additions & 1 deletion ModularTegustation/ego_weapons/ranged/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -367,4 +367,17 @@
pellets = initial(pellets)
variance = initial(variance)
return ..()
/obj/item/ego_weapon/ranged/pistol/kcorp/nade

/obj/item/ego_weapon/ranged/squeak
name = "squeaky toy"
desc = "Soft to the touch, as if it's made of rubber"
icon_state = "squeak"
inhand_icon_state = "squeak"
force = 18
projectile_path = /obj/projectile/ego_bullet/ego_squeak
weapon_weight = WEAPON_MEDIUM
spread = 10
shotsleft = 30
reloadtime = 1.3 SECONDS
fire_sound = 'sound/weapons/gun/smg/mp7.ogg'
autofire = 0.14 SECONDS
9 changes: 9 additions & 0 deletions code/datums/abnormality/_ego_datum/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -491,3 +491,12 @@
/datum/ego_datum/armor/hexnail
item_path = /obj/item/clothing/suit/armor/ego_gear/he/hexnail
cost = 35

// Interdimensional Rubber Duck - Squeaky Toy
/datum/ego_datum/weapon/squeak
item_path = /obj/item/ego_weapon/ranged/squeak
cost = 35

/datum/ego_datum/armor/squeak
item_path = /obj/item/clothing/suit/armor/ego_gear/he/squeak
cost = 35
9 changes: 9 additions & 0 deletions code/modules/clothing/suits/ego_gear/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -490,3 +490,12 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
)

/obj/item/clothing/suit/armor/ego_gear/he/squeak
name = "squeaky toy"
desc = "A set of armor that appears to be made of rubber; turning."
icon_state = "hex_nail"
armor = list(RED_DAMAGE = -20, WHITE_DAMAGE = 50, BLACK_DAMAGE = 20, PALE_DAMAGE = 20) // 70
attribute_requirements = list(
PRUDENCE_ATTRIBUTE = 40
)
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
//Idea by ArcAngela, strangely enough.
/mob/living/simple_animal/hostile/abnormality/rubber_duck
name = "Interdimensional Rubber Duck"
desc = "A small yellow duck."
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "duckcontained"
icon_living = "duckcontained"
portrait = "rubber_duck"
maxHealth = 50
health = 50
attack_verb_continuous = "quacks"
attack_verb_simple = "quacks"
damage_coeff = list(BRUTE = 1, RED_DAMAGE = 1, WHITE_DAMAGE = 1, BLACK_DAMAGE = 1, PALE_DAMAGE = 1)
speak_emote = list("quacks")
density = FALSE //So you can't hit it with a stray bullet

can_breach = TRUE
threat_level = HE_LEVEL
faction = list("neutral", "hostile")
start_qliphoth = 2
work_chances = list(
ABNORMALITY_WORK_INSTINCT = list(55, 55, 50, 50, 50),
ABNORMALITY_WORK_INSIGHT = list(55, 55, 50, 50, 50),
ABNORMALITY_WORK_ATTACHMENT = list(30, 20, 10, 0, 0),
ABNORMALITY_WORK_REPRESSION = list(30, 20, 10, 0, 0),
)
work_damage_amount = 10
work_damage_type = WHITE_DAMAGE

ego_list = list(
/datum/ego_datum/weapon/squeak,
/datum/ego_datum/armor/squeak,
)
// gift_type = /datum/ego_gifts/squeak
abnormality_origin = ABNORMALITY_ORIGIN_ORIGINAL
var/list/looking_players = list()
var/list/ignore_abno_list = list(
/mob/living/simple_animal/hostile/abnormality/training_rabbit,
)

/mob/living/simple_animal/hostile/abnormality/rubber_duck/Move()
return FALSE

/mob/living/simple_animal/hostile/abnormality/rubber_duck/Life()
..()
if(status_flags & GODMODE)
return

for(var/mob/living/carbon/human/H in looking_players)
if(get_dist(src, H) > 7) //You're now out of range.
H.adjustSanityLoss(H.maxSanity * 0.3) // take 30% of your Sanity
looking_players-=H
to_chat(H, span_warning("Aren't you forgetting something?"))

for(var/mob/living/carbon/human/H in view(6, src))
looking_players |=H

/* Work effects */
/mob/living/simple_animal/hostile/abnormality/rubber_duck/BreachEffect(mob/living/carbon/human/user, breach_type)
. = ..()

icon_state = "duck"
QDEL_IN(src, 5 MINUTES) //Softlock prevention

var/turf/T = pick(GLOB.department_centers)
var/list/tables = list()
for(var/i=1, i<=3, i++)
for(var/obj/structure/table/tablecheck in range(7, T))
tables+=tablecheck
if(length(tables))
T = get_turf(pick(tables))
forceMove(T)
return
var/list/all_turfs = RANGE_TURFS(5, src)
T = get_turf(pick(all_turfs))
forceMove(T)

/mob/living/simple_animal/hostile/abnormality/rubber_duck/Initialize()
. = ..()
RegisterSignal(SSdcs, COMSIG_GLOB_ABNORMALITY_BREACH, PROC_REF(OnAbnoBreach))


/mob/living/simple_animal/hostile/abnormality/rubber_duck/proc/OnAbnoBreach(datum/source, mob/living/simple_animal/hostile/abnormality/abno)
SIGNAL_HANDLER
if((abno.type in ignore_abno_list) || z != abno.z)
return
if(status_flags & GODMODE)
datum_reference.qliphoth_change(-1)
8 changes: 8 additions & 0 deletions code/modules/paperwork/records/info/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -576,3 +576,11 @@
"When the work result was Bad, the Qliphoth counter lowered.",
"When work was successfully performed, a certain amount of the raw material was converted into nutritous and healing Lifetime Stew, and ejected from the abnormality.",
"Employees who consume too much of the Lifetime Stew, or food in general become easy meals for this abnormality.")

// Rubber Duck
/obj/item/paper/fluff/info/he/rubber_duck
abno_type = /mob/living/simple_animal/hostile/abnormality/rubber_duck
abno_code = "F-02-182"
abno_info = list(
"When another abnormality breached, the Qliphoth counter lowered.",
"F-02-182 returned to it's containment after 5 minutes.")
Binary file modified icons/mob/clothing/ego_gear/abnormality/he.dmi
Binary file not shown.
Binary file modified icons/obj/clothing/ego_gear/abnormality/he.dmi
Binary file not shown.
Binary file modified icons/obj/ego_weapons.dmi
Binary file not shown.
1 change: 1 addition & 0 deletions lobotomy-corp13.dme
Original file line number Diff line number Diff line change
Expand Up @@ -2852,6 +2852,7 @@
#include "code\modules\mob\living\simple_animal\abnormality\he\red_queen.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\red_shoes.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\road_home.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\rubber_duck.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\rudolta.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\scarecrow.dm"
#include "code\modules\mob\living\simple_animal\abnormality\he\scaredy_cat.dm"
Expand Down