Skip to content

Commit

Permalink
Merge branch 'master' into fixer-office
Browse files Browse the repository at this point in the history
  • Loading branch information
Kitsunemitsu authored Jan 15, 2025
2 parents 3d2d872 + f66b6c8 commit bf662cb
Show file tree
Hide file tree
Showing 570 changed files with 72,963 additions and 24,566 deletions.
7 changes: 4 additions & 3 deletions .github/workflows/compile_changelogs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ name: Compile changelogs
on:
schedule:
- cron: "0 0 * * *"
workflow_dispatch:

jobs:
compile:
Expand Down Expand Up @@ -44,12 +45,12 @@ jobs:
- name: Commit
if: steps.value_holder.outputs.CL_ENABLED
run: |
git config --local user.email "[email protected]"
git config --local user.name "Changelogs"
git config --local user.email "${{ secrets.BOT_EMAIL }}"
git config --local user.name "${{ secrets.BOT_NAME }}"
git pull origin master
git commit -m "Automatic changelog compile [ci skip]" -a || true
- name: "Push"
if: steps.value_holder.outputs.CL_ENABLED
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
github_token: ${{ secrets.BOT_TOKEN }}
13 changes: 7 additions & 6 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -215,13 +215,14 @@ tools/CreditsTool/obj/*
#dmdoc default folder
/dmdoc

/config/*
!/config/example
!/config/example/*

# Ignore custom music and title screens (amend as appropriate)
/config/jukebox_music/sounds/*
!/config/jukebox_music/sounds/exclude
/config/title_music/sounds/*
!/config/title_music/sounds/exclude
/config/title_screens/images/*
!/config/title_screens/images/exclude
/config/example/jukebox_music/sounds/exclude
/config/example/title_music/sounds/exclude
/config/example/title_screens/images/exclude

#Linux docker
tools/LinuxOneShot/SetupProgram/obj/*
Expand Down
Binary file modified ModularTegustation/Teguicons/32x32.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/lc13_left.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/lc13_right.dmi
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/lc13_weapons.dmi
Binary file not shown.
Binary file not shown.
Binary file added ModularTegustation/Teguicons/room_spawners/13x15.dmi
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file modified ModularTegustation/Teguicons/status_sprites.dmi
Binary file not shown.
4 changes: 4 additions & 0 deletions ModularTegustation/ego_weapons/melee/aleph.dm
Original file line number Diff line number Diff line change
Expand Up @@ -750,6 +750,10 @@

attacking = TRUE //ALWAYS blocking ranged attacks

/obj/item/ego_weapon/shield/distortion/Initialize()
. = ..()
aggro_on_block *= 4

/obj/item/ego_weapon/shield/distortion/EgoAttackInfo(mob/user)
return span_notice("It deals [force * 4] red, white, black and pale damage combined.")

Expand Down
174 changes: 174 additions & 0 deletions ModularTegustation/ego_weapons/melee/non_abnormality/echo_office.dm
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
/obj/item/ego_weapon/city/echo
name = "echo weapon"
desc = "You should not see this."
icon_state = "miraecane"
force = 50
damtype = WHITE_DAMAGE

attack_verb_continuous = list("slashes", "cuts")
attack_verb_simple = list("slash", "cut")
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 60,
JUSTICE_ATTRIBUTE = 60,
)

//Electric Fixer Weapons
/obj/item/ego_weapon/city/echo/twins
name = "twins"
desc = "Soon, All of the wicked shall be punished..."
special = "Upon hit the targets WHITE vulnerability is increased by 0.2. \
When using both sodom and gomorrah, increase their attack speed by 0.2"
hitsound = 'sound/weapons/fixer/generic/knife3.ogg'
icon_state = "sodom"
force = 18
attack_speed = 0.5
damtype = WHITE_DAMAGE
var/attack_speed_buff = 0.2

attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 80,
TEMPERANCE_ATTRIBUTE = 60,
JUSTICE_ATTRIBUTE = 60,
)

/obj/item/ego_weapon/city/echo/twins/attack(mob/living/target, mob/living/user)
var/old_attack_speed = attack_speed
if ((locate(/obj/item/ego_weapon/city/echo/twins/gomorrah) in user.held_items) && (locate(/obj/item/ego_weapon/city/echo/twins/sodom) in user.held_items))
attack_speed -= attack_speed_buff

. = ..()

if(!.)
return FALSE

attack_speed = old_attack_speed

if(isliving(target))
var/mob/living/simple_animal/M = target
if(!ishuman(M) && !M.has_status_effect(/datum/status_effect/rend_white))
new /obj/effect/temp_visual/cult/sparks(get_turf(M))
M.apply_status_effect(/datum/status_effect/rend_white)

/obj/item/ego_weapon/city/echo/twins/gomorrah
name = "gomorrah"
icon_state = "gomorrah"

/obj/item/ego_weapon/city/echo/twins/sodom
name = "sodom"
icon_state = "sodom"


//Metal Fixer Weapons
/obj/item/ego_weapon/shield/eria
name = "eria"
desc = "It has been quite a while since I last used you two. I missed the feeling."
special = "This weapon restores health on a successful block."
icon_state = "eria"
icon = 'ModularTegustation/Teguicons/lc13_weapons.dmi'
lefthand_file = 'ModularTegustation/Teguicons/lc13_left.dmi'
righthand_file = 'ModularTegustation/Teguicons/lc13_right.dmi'
force = 30
attack_speed = 1.5
damtype = BLACK_DAMAGE
attack_verb_continuous = list("bashes", "hammers", "smacks")
attack_verb_simple = list("bash", "hammer", "smack")
hitsound = 'sound/weapons/fixer/generic/club2.ogg'
reductions = list(40, 20, 80, 10) // 150
projectile_block_duration = 0.5 SECONDS
block_duration = 1 SECONDS
block_cooldown = 3 SECONDS
block_sound = 'sound/weapons/ego/clash1.ogg'
projectile_block_message ="Your shield swats the projectile away!"
block_message = "You attempt to block the attack!"
hit_message = "blocks the attack!"
block_cooldown_message = "You rearm your sheild"
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 60,
)

/obj/item/ego_weapon/shield/eria/attack_self(mob/user)//FIXME: Find a better way to use this override!
if(block == 0) //Extra check because shields returns nothing on 1
if(..())
RegisterSignal(user, COMSIG_ATOM_ATTACK_HAND, PROC_REF(NoParry), override = TRUE)//creates runtimes without overrides, double check if something's fucked
RegisterSignal(user, COMSIG_PARENT_ATTACKBY, PROC_REF(NoParry), override = TRUE)//728 and 729 must be able to unregister the signal of 730
return TRUE
else
return FALSE

/obj/item/ego_weapon/shield/eria/proc/NoParry(mob/living/carbon/human/user, obj/item/L)//Disables AnnounceBlock when attacked by an item or a human
SIGNAL_HANDLER
UnregisterSignal(user, COMSIG_MOB_APPLY_DAMGE)//y'all can't behave

/obj/item/ego_weapon/shield/eria/AnnounceBlock(mob/living/carbon/human/source, damage, damagetype, def_zone)
if (damagetype == PALE_DAMAGE)
to_chat(source,span_nicegreen("Your [src] withers at the touch of death!"))
return ..()
to_chat(source,span_nicegreen("You are healed by [src]."))
source.adjustBruteLoss(-25)
..()

/obj/item/ego_weapon/city/echo/iria
name = "iria"
desc = "Experiences have shaped me this way."
icon_state = "iria"
special = "When attacking while using both iria and eria, deal 0.3 more damage and increase the knockback caused by iria."
force = 45
attack_speed = 1.5
damtype = BLACK_DAMAGE
var/damage_multiplier = 1.3
attack_verb_continuous = list("bashes", "hammers", "smacks")
attack_verb_simple = list("bash", "hammer", "smack")
hitsound = 'sound/weapons/fixer/generic/fist1.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 60,
)

/obj/item/ego_weapon/city/echo/iria/attack(mob/living/target, mob/living/user)
var/old_force_multiplier = force_multiplier
if ((locate(/obj/item/ego_weapon/city/echo/iria) in user.held_items) && (locate(/obj/item/ego_weapon/shield/eria) in user.held_items))
force_multiplier = damage_multiplier
knockback = KNOCKBACK_MEDIUM
. = ..()

if(!.)
return FALSE

force_multiplier = old_force_multiplier
knockback = KNOCKBACK_LIGHT

//Flame Fixer Weapon
/obj/item/ego_weapon/city/echo/sunstrike
name = "sunstrike"
desc = "A heavy spear decorated with vibrant patterns on the head. Etched with the name 'Helios' on the grip."
special = "This weapon inflicts burn on hit."
icon_state = "sunstrike"
force = 42
attack_speed = 1.5
reach = 2
stuntime = 5
damtype = RED_DAMAGE
var/inflict_burn = 2
attack_verb_continuous = list("pokes", "jabs", "tears", "lacerates", "gores")
attack_verb_simple = list("poke", "jab", "tear", "lacerate", "gore")
hitsound = 'sound/weapons/ego/spear1.ogg'
attribute_requirements = list(
FORTITUDE_ATTRIBUTE = 60,
PRUDENCE_ATTRIBUTE = 60,
TEMPERANCE_ATTRIBUTE = 80,
JUSTICE_ATTRIBUTE = 60,
)

/obj/item/ego_weapon/city/echo/sunstrike/attack(mob/living/target, mob/living/carbon/human/user)
if(!CanUseEgo(user))
return
..()
target.apply_lc_burn(inflict_burn)
Original file line number Diff line number Diff line change
Expand Up @@ -211,6 +211,7 @@

/datum/status_effect/interventionshield/wcorp
statuseffectvisual = icon('ModularTegustation/Teguicons/tegu_effects.dmi', "pale_shield")
respectivedamage = list(RED_DAMAGE, WHITE_DAMAGE, BLACK_DAMAGE, PALE_DAMAGE)

/obj/item/ego_weapon/city/wcorp/shield
name = "w-corp type-C shieldblade"
Expand Down
6 changes: 6 additions & 0 deletions ModularTegustation/ego_weapons/melee/subtype/shield.dm
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@
var/block_sound_volume = 50
var/projectile_timer
var/parry_timer
var/aggro_on_block

/obj/item/ego_weapon/shield/Initialize()
. = ..()
Expand All @@ -56,6 +57,7 @@
resistances_list += list("BLACK" = reductions[3])
if(reductions[4] != 0)
resistances_list += list("PALE" = reductions[4])
aggro_on_block = force * 3

//Allows the user to deflect projectiles for however long recovery time is set to on a hit
/obj/item/ego_weapon/shield/melee_attack_chain(mob/user, atom/target, params)
Expand Down Expand Up @@ -96,6 +98,10 @@
shield_user.physiology.black_mod *= max(0.001, (1 - ((reductions[3]) / 100)))
shield_user.physiology.pale_mod *= max(0.001, (1 - ((reductions[4]) / 100)))
RegisterSignal(user, COMSIG_MOB_APPLY_DAMGE, PROC_REF(AnnounceBlock))
for(var/mob/living/simple_animal/hostile/H in hearers(3, user))
if(H.stat != CONSCIOUS || H.AIStatus == AI_OFF || H.client)
continue
H.RegisterAggroValue(user, aggro_on_block, AGGRO_DAMAGE)
if(QDELING(src))
DisableBlock(shield_user)
else
Expand Down
11 changes: 11 additions & 0 deletions ModularTegustation/ego_weapons/melee/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -576,6 +576,17 @@
charge_speed_cap = 2
couch_cooldown_time = 3 SECONDS

/obj/item/ego_weapon/kikimora
name = "kiki mora"
desc = "Many would speak her name."
icon_state = "kikimora"
force = 35
attack_speed = 1.6
damtype = RED_DAMAGE
attack_verb_continuous = list("beats", "smacks")
attack_verb_simple = list("beat", "smack")
hitsound = 'sound/weapons/fixer/generic/gen1.ogg'

/obj/item/ego_weapon/denial
name = "denial"
desc = "Unregulated ingestion of Enkephalin may cause a wide range of unverified psychopathological symptoms."
Expand Down
7 changes: 7 additions & 0 deletions ModularTegustation/ego_weapons/ranged/ego_bullets/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -136,3 +136,10 @@
speed = 0.45
range = 14
hit_nondense_targets = TRUE

/obj/projectile/ego_bullet/ego_tough
name = "9mm tough bullet"
damage = 16 // Being bald is the optimal gameplay choice!
damage_type = WHITE_DAMAGE


6 changes: 1 addition & 5 deletions ModularTegustation/ego_weapons/ranged/ego_bullets/zayin.dm
Original file line number Diff line number Diff line change
@@ -1,8 +1,3 @@
/obj/projectile/ego_bullet/ego_tough
name = "9mm tough bullet"
damage = 12 // Being bald is the optimal gameplay choice!
damage_type = WHITE_DAMAGE

/obj/projectile/ego_bullet/ego_soda
name = "9mm soda bullet"
damage = 11
Expand Down Expand Up @@ -57,3 +52,4 @@
name = "oceanic"
damage = 11 //Worse than tough lol
damage_type = WHITE_DAMAGE

61 changes: 61 additions & 0 deletions ModularTegustation/ego_weapons/ranged/teth.dm
Original file line number Diff line number Diff line change
Expand Up @@ -210,3 +210,64 @@
weapon_weight = WEAPON_HEAVY
autofire = 0.6 SECONDS
fire_sound = 'sound/items/handling/paper_pickup.ogg' //Mostly just using this for a lack of a better "card-flicking" noise

/obj/item/ego_weapon/ranged/pistol/tough
name = "tough pistol"
desc = "A glock reminiscent of a certain detective who fought evil for 25 years, losing hair as time went by."
special = "Use this weapon in your hand when wearing matching armor to turn others nearby bald."
icon_state = "bald"
inhand_icon_state = "bald"
damtype = WHITE_DAMAGE
projectile_path = /obj/projectile/ego_bullet/ego_tough
burst_size = 1
fire_delay = 10
fire_sound = 'sound/weapons/gun/pistol/shot.ogg'
vary_fire_sound = FALSE
fire_sound_volume = 70
var/pulse_cooldown
var/pulse_cooldown_time = 60 SECONDS
var/blast_delay = 3 SECONDS

/obj/item/ego_weapon/ranged/pistol/tough/attack_self(mob/user)
if(!ishuman(user))
return
var/mob/living/carbon/human/H = user
if(pulse_cooldown > world.time)
to_chat(H, "<span class='warning'>You have used this ability too recently!</span>")
return
var/obj/item/clothing/suit/armor/ego_gear/zayin/tough/T = H.get_item_by_slot(ITEM_SLOT_OCLOTHING)
if(!istype(T))
to_chat(H, "<span class='warning'>You must have the corrosponding armor equipped to use this ability!</span>")
return
to_chat(H, "<span class='warning'>You use the [src] to create a field of baldness!</span>")
H.playsound_local(get_turf(H), 'sound/abnormalities/wrath_servant/hermit_magic.ogg', 25, 0)
BaldBlast(user)
pulse_cooldown = world.time + pulse_cooldown_time

/obj/item/ego_weapon/ranged/pistol/tough/proc/BaldBlast(mob/living/carbon/human/user ,list/baldtargets = list(), burst_chain)
for(var/mob/living/carbon/human/L in livinginview(5, user)) //not even the dead are safe.
if(!ishuman(L))
continue
if(HAS_TRAIT(L, TRAIT_BALD))
continue
if(L in baldtargets)
to_chat(L, "<span class='warning'>You feel awesome!</span>")
ADD_TRAIT(L, TRAIT_BALD, "ABNORMALITY_BALD")
L.hairstyle = "Bald"
L.update_hair()
continue

baldtargets += L
to_chat(L, "<span class='warning'>You have been hit by the baldy-bald psychological attack. If a non-bald person is reading this, they will be granted the privilege of going bald at an extremely rapid pace if they stay within range of [user]!</span>")
if(!burst_chain)
addtimer(CALLBACK(src, PROC_REF(BaldBlast), user, baldtargets, TRUE), blast_delay)

/obj/item/ego_weapon/ranged/pistol/tough/SpecialEgoCheck(mob/living/carbon/human/H)
if(HAS_TRAIT(H, TRAIT_BALD))
return TRUE
to_chat(H, "<span class='notice'>Only the ones with dedication to clean hairstyle can use [src]!</span>")
return FALSE

/obj/item/ego_weapon/ranged/pistol/tough/SpecialGearRequirements()
return "\n<span class='warning'>The user must have clean hairstyle.</span>"

2 changes: 1 addition & 1 deletion ModularTegustation/ego_weapons/ranged/waw.dm
Original file line number Diff line number Diff line change
Expand Up @@ -487,7 +487,7 @@
fire_sound = 'sound/weapons/bowfire.ogg'
icon_state = "warring_drawn"
if(1)
if(do_after(user, 1, src, IGNORE_USER_LOC_CHANGE))
if(!do_after(user, 1, src, IGNORE_USER_LOC_CHANGE))
return
if(drawn != 1 || charge_amount < charge_cost)
return
Expand Down
Loading

0 comments on commit bf662cb

Please sign in to comment.