Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
16 commits
Select commit Hold shift + click to select a range
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
4,826 changes: 2,810 additions & 2,016 deletions _maps/map_files/cove_world/cove_world.dmm

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions code/__HELPERS/mobs.dm
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ GLOBAL_LIST_EMPTY(species_list)
if(!can_move && (!user.Adjacent(target)))
. = 0
break

if(user.get_active_held_item() != holding || user.incapacitated() || (extra_checks && !extra_checks.Invoke()))
. = 0
break
Expand Down Expand Up @@ -237,17 +237,17 @@ GLOBAL_LIST_EMPTY(species_list)
* mob/user - The mob performing the action.
*
* delay = the time in deciseconds. Use time defines (SECONDS, MINUTES) for readability.
*
*
* needhand - check for an empty hand
*
*
* target - the target of the action
*
* progress - whether to display a progress bar
*
*
* datum/callback/extra_checks - additional check callbacks to perform during do_after
*
*
* same_direction - whether the mob performing the action may switch directions or not
*
*
* interrupt - whether to interrupt a prior do_after or not
*/

Expand Down
13 changes: 11 additions & 2 deletions code/game/objects/items.dm
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
/// Original values for vars overridden by the active alt grip state.
var/list/alt_grip_restore_vars
///intents while gripped, replacing main intents. if list != null, will allow the weapon to be wielded. set to null to remove wielding.
var/list/gripped_intents
var/list/gripped_intents
var/force_wielded = 0
var/gripsprite = FALSE //use alternate grip sprite for inhand
var/wieldsound = FALSE
Expand Down Expand Up @@ -836,7 +836,7 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
else
if(twohands_required)
wield(user)

//Caustic Edit - Ported over from Chompers/Virgo! This handles possessed items.
if(src.possessed_voice && src.possessed_voice.len > 1 && !(user.ckey in warned_of_possession)) // CHOMPEdit Is this item possessed?
warned_of_possession |= user.ckey
Expand Down Expand Up @@ -1629,6 +1629,15 @@ GLOBAL_VAR_INIT(rpg_loot_items, FALSE)
/obj/item/proc/on_embed(obj/item/bodypart/bp)
return

/obj/item/proc/has_armor_value()
if(istype(src, /obj/item/clothing))
var/obj/item/clothing/C = src
if(C.armor)
var/datum/armor/def_armor = C.armor
return def_armor.blunt || def_armor.slash || def_armor.stab || def_armor.piercing

return FALSE

/obj/item/proc/defense_examine()
var/list/str = list()
if(istype(src, /obj/item/clothing))
Expand Down
4 changes: 1 addition & 3 deletions code/game/objects/lighting/_base_roguelight.dm
Original file line number Diff line number Diff line change
Expand Up @@ -200,9 +200,7 @@
if(istype(W, /obj/item/natural/dirtclod))
if(!user.temporarilyRemoveItemFromInventory(W))
return
on = FALSE
set_light(0)
update_icon()
extinguish() //Caustic Edit - This is what Waterbolt seems to call, and that works fine so, I figure this should fix Clods not properly extinguishing.
qdel(W)
src.visible_message("<span class='warning'>[user] snuffs the fire.</span>")
return
Expand Down
2 changes: 1 addition & 1 deletion code/modules/antagonists/roguetown/villain/bandit.dm
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
storyteller_antag_flags = STORYTELLER_ANTAG_VILLAIN | STORYTELLER_ANTAG_ROUNDSTART
storyteller_favor_flags = STORYTELLER_FAVOR_BANDIT
override_candidatereq = TRUE
storyteller_min_players = CHARACTER_INJECTION_MIN_POP
storyteller_min_players = 200 //CHARACTER_INJECTION_MIN_POP //Caustic Edit - Lets bump this up to 200 so it shouldn't ever roll?
storyteller_slot_scaling = 2
storyteller_slot_default_cap = 2
storyteller_maxcaps = list(
Expand Down
2 changes: 1 addition & 1 deletion code/modules/events/antagonist/solo/bandits.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
antag_flag = ROLE_BANDIT
shared_occurence_type = SHARED_MINOR_THREAT
storyteller_antag_flags = STORYTELLER_ANTAG_VILLAIN | STORYTELLER_ANTAG_ROUNDSTART
storyteller_guarantee_flags = STORYTELLER_FAVOR_BANDIT
storyteller_guarantee_flags = STORYTELLER_FAVOR_NONE //STORYTELLER_FAVOR_BANDIT //Caustic Edit - Going to get rid of this guarantee flag as well.

restricted_roles = DEFAULT_ANTAG_BLACKLISTED_ROLES
base_antags = 0 //CC edit: Was originally 5
Expand Down
15 changes: 5 additions & 10 deletions code/modules/mob/living/carbon/human/human_defense.dm
Original file line number Diff line number Diff line change
Expand Up @@ -871,12 +871,6 @@
for(var/bp in body_parts)
if(!bp)
continue
if(skin_armor) //Checks for the natural_armor first.
if(skin_armor.obj_integrity > 0)
var/obj/item/clothing/C = skin_armor
var/val = C.armor.getRating(d_type)
if(val > protection)
used = C
if(bp && istype(bp, /obj/item/clothing))
var/obj/item/clothing/C = bp
if(zone2covered(def_zone, C.body_parts_covered_dynamic))
Expand All @@ -890,7 +884,8 @@
used = C
// Fire/acid: fall back to a worn real-armor piece even at a 0 rating, so a fire/acid-0
// plate still reads as "armored" (engages absorb, shows crumble messages). A rated piece wins.
else if((d_type in ARMOR_DR_RESIST_TYPES) && C.max_integrity && !used)
// has_armor_value() (any blunt/slash/stab/piercing rating) is the real-armor gate so plain cloth keeps bypassing instead of burning off.
else if((d_type in ARMOR_DR_RESIST_TYPES) && C.max_integrity && C.has_armor_value() && !used)
used = C
return used

Expand All @@ -917,9 +912,9 @@
continue
var/val = C.armor.getRating(d_type)
// Fire/acid: any worn real-armor piece counts even at a 0 rating (blunt keeps its own rating gate), so it soaks
// HP damage and takes integrity damage instead of letting it bypass. Cosmetics (no max_integrity)
// stay excluded. The stored rating is preserved as the value (effective/displayed tier).
if(val > 0 || ((d_type in ARMOR_DR_RESIST_TYPES) && C.max_integrity))
// HP damage and takes integrity damage instead of letting it bypass. Plain cloth (no blunt/slash/stab/piercing rating)
// and cosmetics (no max_integrity) stay excluded so they bypass instead of burning off. The stored rating is preserved as the value.
if(val > 0 || ((d_type in ARMOR_DR_RESIST_TYPES) && C.max_integrity && C.has_armor_value()))
used_armor[C] = val
return used_armor

Expand Down
12 changes: 8 additions & 4 deletions code/modules/mob/living/carbon/human/species.dm
Original file line number Diff line number Diff line change
Expand Up @@ -972,7 +972,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
//LIFE//
////////

/datum/species/proc/handle_digestion(mob/living/carbon/human/H)
/datum/species/proc/handle_digestion(mob/living/carbon/human/H)
//CC Edit Begin
handle_diet(H)
//CC Edit End
Expand Down Expand Up @@ -1008,8 +1008,12 @@ GLOBAL_LIST_EMPTY(roundstart_races)
H.Jitter(5)
hunger_rate = 10 * HUNGER_FACTOR*/
// hunger_rate *= H.physiology.hunger_mod
//Caustic Edit - Add in adjustments to Bottomless, and also the 10-minute grace timer for nutrition is added here!
if(H.has_flaw(/datum/charflaw/bottomless))
hunger_rate = (hunger_rate * 1.5) //Bottomless Flaw players just drain their nutrition faster instead of that constantly increasing max.
if(!H.mind || world.time < H.time_of_last_move + 10 MINUTES)
H.adjust_nutrition(-hunger_rate)
//Caustic Edit End

var/obj/item/organ/breasts/breasts = H.has_breasts()
if(breasts)
Expand Down Expand Up @@ -1809,7 +1813,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)

if(!affecting)
return

var/datum/status_effect/buff/clash/limbguard/LG = H.has_status_effect(/datum/status_effect/buff/clash/limbguard)
if(LG)
if(LG.protected_zone == selzone && LG.is_active) // We "missed" into limbguard's protected zone.
Expand Down Expand Up @@ -1887,7 +1891,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
user.filtered_balloon_alert(TRAIT_COMBAT_AWARE, text, show_self = FALSE)

if(H.client?.prefs.combat_toggles & HITZONE_TEXT)
H.balloon_alert(H, "[bodyzone2readablezone(selzone)]...")
H.balloon_alert(H, "[bodyzone2readablezone(selzone)]...")

var/pen_info_check = get_pen_info(H, user, H.get_best_worn_armor(def_zone, int.item_d_type), def_zone, int.item_d_type, int.penfactor, I)
var/armor_block = H.run_armor_check(selzone, I.d_type, "", "",pen, damage = Iforce, blade_dulling=bladec, intdamfactor = used_intfactor, used_weapon = I, pen_info = pen_info_check)
Expand Down Expand Up @@ -2176,7 +2180,7 @@ GLOBAL_LIST_EMPTY(roundstart_races)
loc_temp = loc_b.bellytemperature
else
loc_temp = loc_b.owner.bodytemperature

if(!loc_temp)
var/turf/cur_turf = get_turf(H)
loc_temp = cur_turf.temperature
Expand Down
10 changes: 5 additions & 5 deletions code/modules/procedural_mapping/mapGeneratorModule.dm
Original file line number Diff line number Diff line change
Expand Up @@ -47,18 +47,18 @@
if(allowed_turfs.len && !allowed_turfs[T.type])
return

if(allowed_areas.len)
var/area/A = get_area(T)
if(!allowed_areas[A.type])
return

//Caustic Edit - Add excluded areas option!
if(excluded_areas.len)
var/area/A = get_area(T)
if(excluded_areas[A.type])
return
//Caustic Edit End

if(allowed_areas.len)
var/area/A = get_area(T)
if(!allowed_areas[A.type])
return

//Turfs don't care whether atoms can be placed here
for(var/turfPath in spawnableTurfs)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -115,6 +115,11 @@
if(!istype(H.skin_armor, /obj/item/clothing/suit/roguetown/armor/manual/arcyne_ward))
to_chat(owner, span_warning("Something else already protects my skin!"))
return FALSE
//Caustic Edit - Make Wards not work with Natural Armor.
if(HAS_TRAIT(H, TRAIT_NATURAL_ARMOR))
to_chat(owner, span_warning("My Natural Armor interferes with the ward! It fizzles."))
return FALSE
//Caustic Edit End
var/obj/item/clothing/suit/roguetown/armor/manual/arcyne_ward/existing = H.skin_armor
if(existing.arcyne_armor_tier > initial(ward_type:arcyne_armor_tier))
to_chat(owner, span_warning("A stronger ward already protects me!"))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@
charge_time = 6 SECONDS
point_cost = 4
spell_tier = 3
exclusive_group = "arcyne_ward"
ward_type = /obj/item/clothing/suit/roguetown/armor/manual/arcyne_ward/steelhide
regen_spell_type = /datum/action/cooldown/spell/regenerate_arcyne_ward/steelhide

Expand Down
2 changes: 1 addition & 1 deletion code/modules/spells/spell_types/wizard/spell_list.dm
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ GLOBAL_LIST_INIT(utility_spells, (list(
/datum/action/cooldown/spell/shape_branch, // Caustic Edit - New spells, make wood
/datum/action/cooldown/spell/touch/rune_ward,
/datum/action/cooldown/spell/transcribe,
/obj/effect/proc_holder/spell/targeted/touch/sizespell, //Caustic edit -- Jon: This should function fine! Probably? Should be re-tooled to work with the new system.
/datum/action/cooldown/spell/touch/sizespell, //Caustic edit -- Jon: This should function fine! Probably? Should be re-tooled to work with the new system.
///obj/effect/proc_holder/spell/invoked/conjure_tool/mage, // Caustic Edit -- Jon: This one probably isn't needed as much anymore, Arcyne Forge (lesser) is basically the intended replacement!
)
))
Expand Down
14 changes: 7 additions & 7 deletions modular_causticcove/code/modules/nat_armor/nat_armor.dm
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,12 @@
slot_flags = null
body_parts_covered = COVERAGE_FULL_BODY_ACTUAL
body_parts_inherent = COVERAGE_FULL_BODY_ACTUAL
armor = ARMOR_NATURAL
armor = ARMOR_PADDED_BAD
blade_dulling = DULLING_BASHCHOP
sewrepair = FALSE
max_integrity = 300
max_integrity = ARMOR_INT_CHEST_CIVILIAN
item_flags = DROPDEL

repairmsg_begin = "My natural armour begins to slowly mend itself..."
repairmsg_continue = "My natural armour mends some of its abuse.."
repairmsg_stop = "My natural armour stops mending from the onslaught!"
Expand All @@ -25,8 +25,8 @@

/obj/item/clothing/suit/roguetown/armor/regenerating/skin/natural_armor/dense
name = "dense natural armor"
max_integrity = 400 // The classes that get this also have crit resistance and decent con as is. Might still need to lower this if they can infinitely tank anyways.
armor = ARMOR_NATURAL_DENSE
max_integrity = ARMOR_INT_CHEST_MEDIUM_SCALE // The classes that get this also have crit resistance and decent con as is. Might still need to lower this if they can infinitely tank anyways.
armor = ARMOR_BRONZE
blocksound = CHAINHIT //gonna see if this sound helps differentiate it from the light nat armor

regen_cost = 2
Expand Down Expand Up @@ -56,15 +56,15 @@
if(HAS_TRAIT_FROM(skin_haver, TRAIT_NOHUNGER, TRAIT_VIRTUE)) // Hard coding the incompatibility of deathless' hunger removal, since domesticated wildsoul can still have deathless. Can still be nobreath through other sources.
REMOVE_TRAIT(skin_haver, TRAIT_NOHUNGER, TRAIT_VIRTUE)
to_chat(skin_haver, span_danger("My natural armor awakens a hunger in me."))

if(skin_haver.nutrition <= NUTRITION_LEVEL_HUNGRY) //If you are getting hungry, lets just end repairing early.
reptimer = null

if(obj_integrity >= max_integrity) //It COULD be already fixed though, too
to_chat(loc, span_notice(repairmsg_end))
else
to_chat(loc, span_notice(repairmsg_toohungry))

return

var/repair_amount = ..()
Expand Down
Loading
Loading