Skip to content

Commit

Permalink
Merge remote-tracking branch 'upstream/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
TaculoTaculo committed Dec 25, 2023
2 parents f824690 + 446d478 commit dce05a3
Show file tree
Hide file tree
Showing 30 changed files with 259 additions and 29 deletions.
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/96x96.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/status_sprites.dmi
Binary file not shown.
5 changes: 4 additions & 1 deletion ModularTegustation/tegu_items/gadgets/powered.dm
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,10 @@
. = ..()
if(!chosen_target_type)
to_chat(user, span_warning("Use in-hand to set the target type!"))
if(cell && cell.charge >= batterycost && target_check(target))
if(cell && cell.charge >= batterycost)
if(isliving(target) && !target_check(target))
to_chat(user, span_warning("The projector fails to scan [target] with its current setting."))
return
cell.charge -= batterycost
var/mob/living/L = target
to_chat(user, span_notice("Projection of [target] Vitals Initializing."))
Expand Down
12 changes: 8 additions & 4 deletions code/datums/abnormality/_ego_datum/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -398,10 +398,6 @@
cost = 35

//Faelantern - Midwinter Nightmare
/datum/ego_datum/armor/faelantern
item_path = /obj/item/clothing/suit/armor/ego_gear/he/faelantern
cost = 35

/datum/ego_datum/weapon/faelantern
item_path = /obj/item/ego_weapon/faelantern
cost = 35
Expand Down Expand Up @@ -442,3 +438,11 @@
/datum/ego_datum/weapon/nixie
item_path = /obj/item/ego_weapon/nixie
cost = 35

/datum/ego_datum/armor/sunshower
item_path = /obj/item/clothing/suit/armor/ego_gear/he/sunshower
cost = 35

/datum/ego_datum/weapon/sunshower
item_path = /obj/item/ego_weapon/sunshower
cost = 35
4 changes: 4 additions & 0 deletions code/datums/abnormality/_ego_datum/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -326,3 +326,7 @@
item_path = /obj/item/ego_weapon/sanitizer
cost = 20

//Faelantern - Midwinter Nightmare
/datum/ego_datum/armor/faelantern
item_path = /obj/item/clothing/suit/armor/ego_gear/teth/faelantern
cost = 20
38 changes: 37 additions & 1 deletion code/game/objects/items/ego_weapons/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -1025,6 +1025,7 @@
name = "dimensional ripple"
desc = "They should've died after bleeding so much. You usually don't quarantine a corpse...."
icon_state = "warp2"
force = 24
lefthand_file = 'icons/mob/inhands/weapons/ego_lefthand.dmi'
righthand_file = 'icons/mob/inhands/weapons/ego_righthand.dmi'
inhand_x_dimension = 32
Expand Down Expand Up @@ -1497,7 +1498,7 @@
attack_verb_simple = list("poke", "slash")
hitsound = 'sound/weapons/fixer/generic/sword1.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
PRUDENCE_ATTRIBUTE = 40
)
var/firing_cooldown = 0
var/hit_cooldown_time = 10 SECONDS
Expand Down Expand Up @@ -1748,3 +1749,38 @@

/obj/item/ego_weapon/nixie/get_clamped_volume()
return 50

/obj/item/ego_weapon/sunshower //TD
name = "sunshower"
desc = "I cannot protect you from this rain, but I can guard you from false kindness."
special = "This weapon gains 1 poise for every attack. 1 poise gives you a 2% chance to crit at 3x damage, stacking linearly. Critical hits reduce poise to 0."
icon_state = "sunshower"
force = 17
attack_speed = 0.5
damtype = BLACK_DAMAGE
attack_verb_continuous = list("slices", "cleaves", "chops")
attack_verb_simple = list("slice", "cleave", "chop")
hitsound = 'sound/weapons/ego/spear1.ogg'
attribute_requirements = list(
TEMPERANCE_ATTRIBUTE = 40
)
var/poise = 0

/obj/item/ego_weapon/sunshower/examine(mob/user)
. = ..()
. += "Current Poise: [poise]/20."

/obj/item/ego_weapon/sunshower/attack(mob/living/target, mob/living/carbon/human/user)
if(!CanUseEgo(user))
return
poise+=1
if(poise>= 20)
poise = 20

//Crit stuff, taken from fourleaf, so thanks to whomever coded that!
if(prob(poise*2))
force*=3
to_chat(user, "<span class='userdanger'>Critical!</span>")
poise = 0
..()
force = initial(force)
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
. = ..()
if(!.)
return FALSE
if(charge<20 && target.stat != DEAD)
if((target.stat == DEAD) || target.status_flags & GODMODE)
return FALSE
if(charge<20)
charge+=1

/obj/item/ego_weapon/city/charge/proc/release_charge(mob/living/target, mob/living/user)
Expand Down
2 changes: 1 addition & 1 deletion code/game/objects/items/ego_weapons/subtype/charge.dm
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@
. = ..()
if(!.)
return FALSE
if((target.stat == DEAD) || (GODMODE in target.status_flags))//if the target is dead or godmode
if((target.stat == DEAD) || target.status_flags & GODMODE)//if the target is dead or godmode
return FALSE
if(charge<20)
charge+=1
Expand Down
2 changes: 0 additions & 2 deletions code/game/objects/items/ego_weapons/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -500,8 +500,6 @@
damage = 20
damage_type = BLACK_DAMAGE



/obj/item/ego_weapon/sanitizer
name = "sanitizer"
desc = "It's very shocking."
Expand Down
20 changes: 10 additions & 10 deletions code/modules/clothing/suits/ego_gear/he.dm
Original file line number Diff line number Diff line change
Expand Up @@ -410,16 +410,6 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
TEMPERANCE_ATTRIBUTE = 40
)

/obj/item/clothing/suit/armor/ego_gear/he/faelantern
name = "midwinter nightmare"
desc = "Some things are too good to be true."
icon_state = "faelantern"
armor = list(RED_DAMAGE = 60, WHITE_DAMAGE = 20, BLACK_DAMAGE = -20, PALE_DAMAGE = -20) // 40
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 40
)


/obj/item/clothing/suit/armor/ego_gear/he/coiling
name = "coiling"
desc = "It's beautiful snake leather."
Expand Down Expand Up @@ -455,3 +445,13 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
attribute_requirements = list(
JUSTICE_ATTRIBUTE = 40
)

/obj/item/clothing/suit/armor/ego_gear/he/sunshower
name = "sunshower"
desc = "Luck follows the truly kind, may it protect those who are worthy."
icon_state = "sunshower"
armor = list(RED_DAMAGE = 30, WHITE_DAMAGE = 20, BLACK_DAMAGE = 40, PALE_DAMAGE = -20) // 70
attribute_requirements = list(
TEMPERANCE_ATTRIBUTE = 40
)

8 changes: 7 additions & 1 deletion code/modules/clothing/suits/ego_gear/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,7 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
She threatens to kill the princess if she doesn't swear never to say a word about this reversal of roles to any living being. Sadly, the princess takes the oath."
icon_state = "zauberhorn"
armor = list(RED_DAMAGE = -30, WHITE_DAMAGE = 20, BLACK_DAMAGE = 30, PALE_DAMAGE = 0) // 20

/obj/item/clothing/suit/armor/ego_gear/teth/visions
name = "visions of future past"
desc = "It's looking right at you."
Expand All @@ -238,3 +238,9 @@ Any attempt to code risk class armor will result in a 10 day Github ban.*/
desc = "It's very clean, freshly washed."
icon_state = "sanitizer" //Just like a bobot
armor = list(RED_DAMAGE = 40, WHITE_DAMAGE = 0, BLACK_DAMAGE = -40, PALE_DAMAGE = 0) // 0

/obj/item/clothing/suit/armor/ego_gear/teth/faelantern
name = "midwinter nightmare"
desc = "Some things are too good to be true."
icon_state = "faelantern"
armor = list(RED_DAMAGE = 20, WHITE_DAMAGE = 30, BLACK_DAMAGE = -30, PALE_DAMAGE = 0) // 20
8 changes: 8 additions & 0 deletions code/modules/mob/living/carbon/human/ego_gifts.dm
Original file line number Diff line number Diff line change
Expand Up @@ -839,6 +839,14 @@
justice_bonus = 2
slot = HAND_2

/datum/ego_gifts/sunshower
name = "Sunshower"
icon_state = "sunshower"
temperance_bonus = 5
justice_bonus = -2
prudence_bonus = -2
slot = LEFTBACK

/**
* WAW EGO Gifts
*/
Expand Down
154 changes: 154 additions & 0 deletions code/modules/mob/living/simple_animal/abnormality/he/drifting_fox.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,154 @@
// this was a mistake.
// By yours truely, Mori.
#define STATUS_EFFECT_FALSEKIND /datum/status_effect/false_kindness
/mob/living/simple_animal/hostile/abnormality/drifting_fox
name = "Drifting Fox"
desc = "A large shaggy fox with gleaming yellow eyes; And torn umbrellas lodged into its back."
icon = 'ModularTegustation/Teguicons/96x96.dmi'
icon_state = "drifting_fox"
icon_living = "drifting_fox"
icon_dead = "fox_egg"
deathmessage = "Collapses into a glass egg"
deathsound = 'sound/abnormalities/drifting_fox/fox_death_sound.ogg'
pixel_x = -24
pixel_y = -26
base_pixel_x = -24
base_pixel_y = -26
del_on_death = FALSE
maxHealth = 1000
health = 1000
rapid_melee = 3
move_to_delay = 2
damage_coeff = list( RED_DAMAGE = 0.9, WHITE_DAMAGE = 1.5, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 1.5 )
melee_damage_lower = 5
melee_damage_upper = 15 // Idea taken from the old PR, have a large damage range to immitate its fucked rolls and crit chance.
melee_damage_type = BLACK_DAMAGE
stat_attack = HARD_CRIT
attack_sound = 'sound/abnormalities/drifting_fox/fox_melee_sound.ogg'
attack_verb_simple = "thwacks"
attack_verb_continuous = "thwacks"
can_breach = TRUE
threat_level = HE_LEVEL
start_qliphoth = 2
work_chances = list(
ABNORMALITY_WORK_INSTINCT = 40,
ABNORMALITY_WORK_INSIGHT = 40,
ABNORMALITY_WORK_ATTACHMENT = list(15, 20, 25, 30, 35),
ABNORMALITY_WORK_REPRESSION = 0,
)
work_damage_amount = 10
work_damage_type = BLACK_DAMAGE
abnormality_origin = ABNORMALITY_ORIGIN_LIMBUS

ego_list = list(
/datum/ego_datum/weapon/sunshower,
/datum/ego_datum/armor/sunshower
)
gift_type = /datum/ego_gifts/sunshower
gift_message = "The fox plucks an umbrella from its back and gives it to you, perhaphs as thanks?"

var/list/pet = list()
pet_bonus = "yips"

/mob/living/simple_animal/hostile/abnormality/drifting_fox/funpet(mob/petter)
pet += petter

/mob/living/simple_animal/hostile/abnormality/drifting_fox/WorkChance(mob/living/carbon/human/user, chance, work_type)
if(user in pet)
if(work_type == ABNORMALITY_WORK_ATTACHMENT)
chance += 30
return chance

/mob/living/simple_animal/hostile/abnormality/drifting_fox/PostWorkEffect(mob/living/carbon/human/user, work_type, pe, work_time)
if(user in pet)
pet -= user
if(get_attribute_level(user, TEMPERANCE_ATTRIBUTE) <= 40)
datum_reference.qliphoth_change(-1)
return

/mob/living/simple_animal/hostile/abnormality/drifting_fox/FailureEffect(mob/living/carbon/human/user, work_type, pe)
datum_reference.qliphoth_change(-1)

/mob/living/simple_animal/hostile/abnormality/drifting_fox/BreachEffect(mob/living/carbon/human/user)
..()
icon_living = "fox_breach"
icon_state = icon_living
pixel_y = -6

/mob/living/simple_animal/hostile/abnormality/drifting_fox/death(gibbed)
density = FALSE
animate(src, alpha = 0, time = 10 SECONDS)
QDEL_IN(src, 10 SECONDS)
..()

/mob/living/simple_animal/hostile/abnormality/drifting_fox/AttackingTarget(atom/attacked_target)
if(ishuman(target))
var/mob/living/carbon/human/H = target
H.apply_status_effect(STATUS_EFFECT_FALSEKIND)
return ..()

/datum/status_effect/false_kindness // MAYBE the black sunder shti works this time.
id = "false_kindness"
duration = 2 SECONDS //lasts 2 seconds becuase this is for an AI that attacks fast as shit, its not meant to fuck you up with other things.
alert_type = /atom/movable/screen/alert/status_effect/false_kindness
status_type = STATUS_EFFECT_REFRESH

/atom/movable/screen/alert/status_effect/false_kindness
name = "False Kindness"
desc = "You feel the weight of your mistakes."
icon = 'ModularTegustation/Teguicons/status_sprites.dmi'
icon_state = "false_kindness" //Bit of a placeholder sprite, it works-ish so

/datum/status_effect/false_kindness/on_apply() //" Borrowed " from Ptear blade, courtesy of gong.
. = ..()
if(ishuman(owner))
var/mob/living/carbon/human/L = owner //Stolen from Ptear Blade, MAYBE works on people?
to_chat(L, "<span class='userdanger'>You feel the foxes gaze upon you!</span>")
L.physiology.black_mod *= 1.3
return

/datum/status_effect/false_kindness/on_remove()
. = ..()
if(ishuman(owner))
var/mob/living/carbon/human/L = owner
to_chat(L, "<span class='userdanger'>You feel as though its gaze has lifted.</span>") //stolen from PT wep, but I asked so this 100% ok.
L.physiology.black_mod /= 1.3
return

//mob/living/simple_animal/hostile/abnormality/drifting_fox/Life()
//. = ..()
//if(!.) // Dead
// return FALSE
//if(health >= 900)
// var/X = pick(GLOB.department_centers)
// var/turf/T = get_turf(X)
// new /mob/living/simple_animal/hostile/umbrella(T)

/mob/living/simple_animal/hostile/umbrella
name = "Umbrella"
desc = "A tattered and worn umbrella; The fox seems to have many to spare."
icon = 'ModularTegustation/Teguicons/32x32.dmi'
icon_state = "foxbrella"
icon_living = "foxbrella"
faction = list("hostile")
maxHealth = 125
health = 125
damage_coeff = list(RED_DAMAGE = 1, WHITE_DAMAGE = 0.7, BLACK_DAMAGE = 0.5, PALE_DAMAGE = 2)
move_to_delay = 5
melee_damage_lower = 5
melee_damage_upper = 15
melee_damage_type = BLACK_DAMAGE
attack_sound = 'sound/abnormalities/drifting_fox/fox_aoe_sound.ogg'
attack_verb_continuous = "slashes"
attack_verb_simple = "cut"
robust_searching = TRUE
del_on_death = FALSE

/mob/living/simple_animal/hostile/umbrella/death(gibbed)
visible_message(span_notice("[src] falls to the ground as the umbrella closes in on itself!"))
density = FALSE
animate(src, alpha = 0, time = 10 SECONDS)
QDEL_IN(src, 10 SECONDS)
return ..()

#undef STATUS_EFFECT_FALSEKIND
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,8 @@
spawnedmob.desc = "It looks like a [spawnedmob.name] but made of paper."
spawnedmob.name = "Paper [initial(spawnedmob.name)]"
spawnedmob.faction = list("hostile")
spawnedmob.health = (spawnedmob.maxHealth / 10)
spawnedmob.maxHealth = (spawnedmob.maxHealth / 10)
spawnedmob.health = spawnedmob.maxHealth
spawnedmob.deathmessage = "collapses into a bunch of writing material."
spawnedmob.filters += filter(type="drop_shadow", x=0, y=0, size=1, offset=0, color=rgb(0, 0, 0))
src.visible_message(span_warning("Pages of [src] fold into [spawnedmob]!"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@

/mob/living/simple_animal/hostile/abnormality/fragment/Destroy()
QDEL_NULL(legs)
if(!particle_note)
return ..()
particle_note.fadeout()
particle_song.fadeout()
return ..()
Expand Down Expand Up @@ -124,15 +126,17 @@
SLEEP_CHECK_DEATH(3)

animate(src, pixel_y = 0, time = 0)
QDEL_NULL(legs)
flick("fragment_song_transition" , src)
SLEEP_CHECK_DEATH(5)
icon_state = "fragment_breach"
pixel_y = 0
QDEL_NULL(legs)
particle_note.fadeout()
particle_song.fadeout()
can_act = TRUE
song_cooldown = world.time + song_cooldown_time
if(!particle_note)
return
particle_note.fadeout()
particle_song.fadeout()

/mob/living/simple_animal/hostile/abnormality/fragment/NeutralEffect(mob/living/carbon/human/user, work_type, pe)
if(prob(40))
Expand Down
Loading

0 comments on commit dce05a3

Please sign in to comment.