2029163d33
About The Pull Request Converts every single usage of playsound's vary parameter to use the boolean define instead of 1 or 0. I'm tired of people copypasting the incorrect usage. Also changes a couple of places where a list was picked from instead of using get_sfx internal calls This was done via regex: (playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\)) to match 1 (playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\)) to match 0 full sed commands: /(playsound\(.+,.+,.+, ?)1( ?\)| ?,.+\))/\1TRUE\2/ 1 to TRUE /(playsound\(.+,.+,.+, ?)0( ?\)| ?,.+\))/\1FALSE\2/ 0 to FALSE I'm not very good with regex and these could probably be optimized, but they worked. Why It's Good For The Game Code usability
81 lines
2.9 KiB
Plaintext
81 lines
2.9 KiB
Plaintext
/obj/item/melee/transforming
|
|
sharpness = IS_SHARP
|
|
var/active = FALSE
|
|
var/force_on = 30 //force when active
|
|
var/faction_bonus_force = 0 //Bonus force dealt against certain factions
|
|
var/throwforce_on = 20
|
|
var/icon_state_on = "axe1"
|
|
var/hitsound_on = 'sound/weapons/blade1.ogg'
|
|
var/list/attack_verb_on = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
var/list/attack_verb_off = list("attacked", "slashed", "stabbed", "sliced", "torn", "ripped", "diced", "cut")
|
|
w_class = WEIGHT_CLASS_SMALL
|
|
var/bonus_active = FALSE //If the faction damage bonus is active
|
|
var/list/nemesis_factions //Any mob with a faction that exists in this list will take bonus damage/effects
|
|
var/w_class_on = WEIGHT_CLASS_BULKY
|
|
var/clumsy_check = TRUE
|
|
|
|
/obj/item/melee/transforming/Initialize()
|
|
. = ..()
|
|
if(active)
|
|
if(attack_verb_on.len)
|
|
attack_verb = attack_verb_on
|
|
else
|
|
if(attack_verb_off.len)
|
|
attack_verb = attack_verb_off
|
|
if(sharpness)
|
|
AddComponent(/datum/component/butchering, 50, 100, 0, hitsound)
|
|
|
|
/obj/item/melee/transforming/attack_self(mob/living/carbon/user)
|
|
if(transform_weapon(user))
|
|
clumsy_transform_effect(user)
|
|
|
|
/obj/item/melee/transforming/attack(mob/living/target, mob/living/carbon/human/user)
|
|
var/nemesis_faction = FALSE
|
|
if(LAZYLEN(nemesis_factions))
|
|
for(var/F in target.faction)
|
|
if(F in nemesis_factions)
|
|
nemesis_faction = TRUE
|
|
force += faction_bonus_force
|
|
nemesis_effects(user, target)
|
|
break
|
|
. = ..()
|
|
if(nemesis_faction)
|
|
force -= faction_bonus_force
|
|
|
|
/obj/item/melee/transforming/proc/transform_weapon(mob/living/user, supress_message_text)
|
|
active = !active
|
|
if(active)
|
|
force = force_on
|
|
throwforce = throwforce_on
|
|
hitsound = hitsound_on
|
|
throw_speed = 4
|
|
if(attack_verb_on.len)
|
|
attack_verb = attack_verb_on
|
|
icon_state = icon_state_on
|
|
w_class = w_class_on
|
|
else
|
|
force = initial(force)
|
|
throwforce = initial(throwforce)
|
|
hitsound = initial(hitsound)
|
|
throw_speed = initial(throw_speed)
|
|
if(attack_verb_off.len)
|
|
attack_verb = attack_verb_off
|
|
icon_state = initial(icon_state)
|
|
w_class = initial(w_class)
|
|
transform_messages(user, supress_message_text)
|
|
add_fingerprint(user)
|
|
return TRUE
|
|
|
|
/obj/item/melee/transforming/proc/nemesis_effects(mob/living/user, mob/living/target)
|
|
return
|
|
|
|
/obj/item/melee/transforming/proc/transform_messages(mob/living/user, supress_message_text)
|
|
playsound(user, active ? 'sound/weapons/saberon.ogg' : 'sound/weapons/saberoff.ogg', 35, TRUE) //changed it from 50% volume to 35% because deafness
|
|
if(!supress_message_text)
|
|
to_chat(user, "<span class='notice'>[src] [active ? "is now active":"can now be concealed"].</span>")
|
|
|
|
/obj/item/melee/transforming/proc/clumsy_transform_effect(mob/living/user)
|
|
if(clumsy_check && HAS_TRAIT(user, TRAIT_CLUMSY) && prob(50))
|
|
to_chat(user, "<span class='warning'>You accidentally cut yourself with [src], like a doofus!</span>")
|
|
user.take_bodypart_damage(5,5)
|