Merge pull request #1179 from lyricalpaws/lets-go-mining

Mining balance changes, some new icons, and good stuff.
This commit is contained in:
Dahlular
2021-05-23 00:32:26 -06:00
committed by GitHub
18 changed files with 1051 additions and 18 deletions

View File

@@ -10,6 +10,20 @@
var/can_be_cut = 1
price = 10
/obj/item/clothing/gloves/color/yellow/ce //funky looking, basically combat gloves
desc = "Special Insulated gloves with pricy thermal shielding normally only found in combat gloves."
name = "Chief Engineer Insulated Gloves"
icon_state = "ce_insuls"
item_state = "combat"
siemens_coefficient = 0
permeability_coefficient = 0.05
strip_delay = 80
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = NONE
/obj/item/clothing/gloves/color/fyellow //Cheap Chinese Crap
desc = "These gloves are cheap knockoffs of the coveted ones - no way this can end badly."
name = "budget insulated gloves"

View File

@@ -406,6 +406,36 @@ Contains:
icon_state = "hardsuit0-beserker"
item_state = "hardsuit0-beserker"
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/miner
name = "inquisitor's hardsuit"
icon_state = "hardsuit-inq"
item_state = "hardsuit-inq"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor/miner
armor = list("melee" = 70, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80)
slowdown = 1
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/inquisitor/miner
name = "inquisitor's helmet"
icon_state = "hardsuit0-inq"
item_state = "hardsuit0-inq"
armor = list("melee" = 70, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80)
/obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/miner
name = "champion's hardsuit"
desc = "Voices echo from the hardsuit, driving the user insane."
icon_state = "hardsuit-beserker"
item_state = "hardsuit-beserker"
helmettype = /obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/miner
armor = list("melee" = 70, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80)
slowdown = 1
/obj/item/clothing/head/helmet/space/hardsuit/ert/paranormal/beserker/miner
name = "champion's helmet"
desc = "Peering into the eyes of the helmet is enough to seal damnation."
icon_state = "hardsuit0-beserker"
item_state = "hardsuit0-beserker"
armor = list("melee" = 70, "bullet" = 20, "laser" = 20, "energy" = 20, "bomb" = 60, "bio" = 100, "rad" = 100, "fire" = 80, "acid" = 80)
/obj/item/clothing/head/helmet/space/fragile
name = "emergency space helmet"
desc = "A bulky, air-tight helmet meant to protect the user during emergency situations. It doesn't look very durable."

View File

@@ -58,7 +58,7 @@
if(inert)
to_chat(owner, "<span class='notice'>[src] breaks down as it tries to activate.</span>")
else
owner.revive(full_heal = 1)
owner.legion_heal()
qdel(src)
/obj/item/organ/regenerative_core/on_life()
@@ -78,12 +78,13 @@
to_chat(user, "<span class='notice'>[src] are useless on the dead.</span>")
return
if(H != user)
H.visible_message("[user] forces [H] to apply [src]... they quickly regenerate all injuries!")
H.visible_message("<span class='warning'>[user] forces [H] to apply [src]... Black tendrils entangle and reinforce [H.p_them()].</span>")
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "other"))
else
to_chat(user, "<span class='notice'>You start to smear [src] on yourself. It feels and smells disgusting, but you feel amazingly refreshed in mere moments.</span>")
to_chat(user, "<span class='notice'>You start to smear [src] on yourself. Disgusting tendrils hold you together and allow you to keep moving, but for how long?</span>")
SSblackbox.record_feedback("nested tally", "hivelord_core", 1, list("[type]", "used", "self"))
H.revive(full_heal = 1)
H.legion_heal()
SEND_SIGNAL(H, COMSIG_ADD_MOOD_EVENT, "legion", /datum/mood_event/healsbadman)
qdel(src)
/obj/item/organ/regenerative_core/Insert(mob/living/carbon/M, special = 0, drop_if_replaced = TRUE)

View File

@@ -18,7 +18,7 @@
if(2)
new /obj/item/clothing/suit/space/hardsuit/cult(src)
if(3)
new /obj/item/soulstone/anybody(src)
new /obj/item/nullrod(src)
if(4)
new /obj/item/katana/cursed(src)
if(5)
@@ -39,7 +39,7 @@
if(11)
new /obj/item/ship_in_a_bottle(src)
if(12)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/beserker/miner(src)
if(13)
new /obj/item/jacobs_ladder(src)
if(14)
@@ -60,14 +60,14 @@
if(20)
new /obj/item/immortality_talisman(src)
if(21)
new /obj/item/gun/magic/hook(src)
new /obj/item/gun/medbeam(src)
if(22)
new /obj/item/voodoo(src)
new /obj/item/circuitboard/machine/plantgenes/vault
if(23)
new /obj/item/grenade/clusterbuster/inferno(src)
new /obj/item/grenade/clusterbuster/soap(src)
if(24)
new /obj/item/reagent_containers/food/drinks/bottle/holywater/hell(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor(src)
new /obj/item/clothing/suit/space/hardsuit/ert/paranormal/inquisitor/miner(src)
if(25)
new /obj/item/book/granter/spell/summonitem(src)
if(26)
@@ -77,6 +77,8 @@
new /obj/item/bedsheet/cult(src)
if(28)
new /obj/item/clothing/neck/necklace/memento_mori(src)
// if(29)
// new /obj/item/clothing/gloves/gauntlets(src)
//KA modkit design discs
/obj/item/disk/design_disk/modkit_disc
@@ -1423,3 +1425,43 @@
attack_self(user)
return
..()
//Concussive Gauntlets
/obj/item/clothing/gloves/gauntlets
name = "concussive gauntlets"
desc = "Pickaxes... for your hands!"
icon_state = "concussive_gauntlets"
item_state = "concussive_gauntlets"
toolspeed = 0.1
strip_delay = 40
equip_delay_other = 20
cold_protection = HANDS
min_cold_protection_temperature = GLOVES_MIN_TEMP_PROTECT
heat_protection = HANDS
max_heat_protection_temperature = GLOVES_MAX_TEMP_PROTECT
resistance_flags = LAVA_PROOF | FIRE_PROOF //they are from lavaland after all
armor = list("melee" = 15, "bullet" = 25, "laser" = 15, "energy" = 15, "bomb" = 100, "bio" = 0, "rad" = 0, "fire" = 100, "acid" = 30) //mostly bone bracer armor
/obj/item/clothing/gloves/gauntlets/equipped(mob/user, slot)
. = ..()
if(slot == ITEM_SLOT_GLOVES)
tool_behaviour = TOOL_MINING
RegisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK, .proc/rocksmash)
RegisterSignal(user, COMSIG_MOVABLE_BUMP, .proc/rocksmash)
else
stopmining(user)
/obj/item/clothing/gloves/gauntlets/dropped(mob/user)
. = ..()
stopmining(user)
/obj/item/clothing/gloves/gauntlets/proc/stopmining(mob/user)
tool_behaviour = initial(tool_behaviour)
UnregisterSignal(user, COMSIG_HUMAN_EARLY_UNARMED_ATTACK)
UnregisterSignal(user, COMSIG_MOVABLE_BUMP)
/obj/item/clothing/gloves/gauntlets/proc/rocksmash(mob/living/carbon/human/H, atom/A, proximity)
if(!istype(A, /turf/closed/mineral))
return
A.attackby(src, H)
return COMPONENT_CANCEL_ATTACK_CHAIN

View File

@@ -544,6 +544,20 @@
O.setOrganDamage(0)
SEND_SIGNAL(src, COMSIG_LIVING_FULLY_HEAL, admin_revive)
//fuck shitcode I hate shitcode
/mob/living/proc/legion_heal()
restore_blood()
setStaminaLoss(0, 0)
SetUnconscious(0, FALSE)
SetStun(0, FALSE)
SetKnockdown(0, FALSE)
SetSleeping(0, FALSE)
bodytemperature = BODYTEMP_NORMAL
heal_overall_damage(INFINITY, INFINITY, INFINITY, FALSE, FALSE, TRUE) //heal brute and burn dmg on both organic and robotic limbs, and update health right away.
ExtinguishMob()
fire_stacks = 0
update_canmove()
SEND_SIGNAL(src, COMSIG_LIVING_FULLY_HEAL)
//proc called by revive(), to check if we can actually ressuscitate the mob (we don't want to revive him and have him instantly die again)
/mob/living/proc/can_be_revived()

View File

@@ -269,7 +269,7 @@
H.dna.add_mutation(DWARFISM)
/obj/effect/mob_spawn/human/corpse/damaged/legioninfested/Initialize()
var/type = pickweight(list("Miner" = 66, "Ashwalker" = 10, "Golem" = 10,"Clown" = 10, pick(list("Shadow", "YeOlde","Operative", "Cultist", "Lavaknight")) = 4)) //CIT CHANGE: Lavaknights
var/type = pickweight(list("Miner" = 66, "Ashwalker" = 10, "Golem" = 10,"Clown" = 10, pick(list("Shadow", "YeOlde", "Cultist", "Lavaknight")) = 4)) //CIT CHANGE: Lavaknights
switch(type)
if("Miner")
mob_species = pickweight(list(/datum/species/human = 70, /datum/species/lizard = 26, /datum/species/fly = 2, /datum/species/plasmaman = 2))
@@ -346,9 +346,6 @@
belt = /obj/item/nullrod/claymore
r_pocket = /obj/item/tank/internals/emergency_oxygen
mask = /obj/item/clothing/mask/breath
if("Operative")
id_job = "Operative"
outfit = /datum/outfit/syndicatecommandocorpse
if("Shadow")
mob_species = /datum/species/shadow
r_pocket = /obj/item/reagent_containers/pill/shadowtoxin

View File

@@ -142,3 +142,19 @@ Slimecrossing Armor
return TRUE
else
return FALSE
/obj/structure/light_prism/spectral
name = "spectral light prism"
desc = "You could barely see this, huh!"
icon = 'icons/obj/slimecrossing.dmi'
icon_state = ""
density = FALSE
anchored = TRUE
max_integrity = 10
var/newcolor = "#ff66ff"
/obj/structure/light_prism/Initialize(mapload, var/newcolor)
. = ..()
color = newcolor
light_color = newcolor
set_light(5)

View File

@@ -144,3 +144,154 @@
user.size_multiplier = H.size_multiplier
user.visible_message("<span class='warning'>[user]'s appearance shifts into [H]'s!</span>", \
"<span class='boldannounce'>[H.p_they(TRUE)] think[H.p_s()] [H.p_theyre()] <i>sooo</i> much better than you. Not anymore, [H.p_they()] won't.</span>")
/obj/item/reagent_containers/chalice
name = "Curse of Lust"
desc = "You shouldn't see this! If you do, tell the gods something is wrong."
icon = 'icons/obj/drinks.dmi'
icon_state = "cumchalice"
/obj/item/reagent_containers/chalice/lust
name = "Golden Chalice of Lust"
desc = "A beautiful golden chalice, centered with a gleaming pink jewel of unknown origin. It is still slightly damp with aphrodisiac. It smells faintly of strawberries and roofies."
icon = 'icons/obj/drinks.dmi'
icon_state = "cumchalice"
w_class = WEIGHT_CLASS_SMALL
force = 1
throwforce = 1
amount_per_transfer_from_this = 5
volume = 15
flags_1 = CONDUCT_1
spillable = TRUE
resistance_flags = INDESTRUCTIBLE
reagent_flags = AMOUNT_VISIBLE
/obj/item/reagent_containers/chalice/lust/Initialize() //just in case
beaker_weakness_bitflag &= ~PH_WEAK
. = ..()
/obj/item/reagent_containers/chalice/lust/attack_self(mob/living/carbon/human/user)
var/thecostofhorny = 0
var/truecostofhorny = 0
var/choicechem = /datum/reagent/water
var/choice = "Water"
var/free = src.reagents.maximum_volume - src.reagents.total_volume
if(free <= 0)
return
if(!user.canUseTopic(src, BE_CLOSE, FALSE, NO_TK))
return
choice = input(user, "Go ahead, pick your poison~", "Boon of Lust") as null|anything in list("Crocin", "Hexacrocin","Succubus Milk", "Incubus Draft", "Prospacillin", "Diminicillin", "Semen", "Femcum", "Milk", "Alien Honey")
switch(choice)
if("Crocin")
choicechem = /datum/reagent/drug/aphrodisiac
thecostofhorny = 5
if("Hexacrocin")
choicechem = /datum/reagent/drug/aphrodisiacplus
thecostofhorny = 5
if("Succubus Milk")
choicechem = /datum/reagent/fermi/breast_enlarger
thecostofhorny = 5
if("Incubus Draft")
choicechem = /datum/reagent/fermi/penis_enlarger
thecostofhorny = 5
if("Prospacillin")
choicechem = /datum/reagent/growthchem
thecostofhorny = 40 //Rare chem, should be very expensive
if("Diminicillin")
choicechem = /datum/reagent/shrinkchem
thecostofhorny = 40 //Rare chem, should be very expensive
if("Semen")
choicechem = /datum/reagent/consumable/semen
thecostofhorny = 1
if("Femcum")
choicechem = /datum/reagent/consumable/femcum
thecostofhorny = 1
if("Milk")
choicechem = /datum/reagent/consumable/milk
thecostofhorny = 3 //fuck you chef
if("Alien Honey")
choicechem = /datum/reagent/consumable/alienhoney
thecostofhorny = 1
var/makechems = alert(user, "Are you sure you want to make [choice]?", "Boon of Lust", "Yes", "No")
switch(makechems)
if("Yes")
src.reagents.add_reagent(choicechem, 5)
truecostofhorny = (thecostofhorny*user.size_multiplier)
user.adjustCloneLoss(truecostofhorny, 1)
user.adjustArousalLoss(100, 1)
to_chat(user, "<span class='userdanger'>You feel part of your body ripped from you violently, before the beaker fills itself with [choice].</span>")
if("No")
return
/obj/item/reagent_containers/chalice/lust/attack(mob/M, mob/user, obj/target)
if(!canconsume(M, user))
return
if(!spillable)
return
if(!reagents || !reagents.total_volume)
to_chat(user, "<span class='warning'>[src] is empty!</span>")
return
if(istype(M))
if(user.a_intent == INTENT_HARM)
M.visible_message("<span class='danger'>[user] splashes the contents of [src] onto [M]!</span>", \
"<span class='userdanger'>[user] splashes the contents of [src] onto [M]!</span>")
var/R = reagents?.log_list()
if(isturf(target) && reagents.reagent_list.len && thrownby)
log_combat(thrownby, target, "splashed (thrown) [english_list(reagents.reagent_list)]")
message_admins("[ADMIN_LOOKUPFLW(thrownby)] splashed (thrown) [english_list(reagents.reagent_list)] on [target] at [ADMIN_VERBOSEJMP(target)].")
reagents.reaction(M, TOUCH)
log_combat(user, M, "splashed", R)
reagents.clear_reagents()
else
if(M != user)
M.visible_message("<span class='danger'>[user] attemped to feed something to [M], but failed!</span>")
return
else
to_chat(user, "<span class='notice'>You swallow a gulp of [src].</span>")
var/fraction = min(5/reagents.total_volume, 1)
reagents.reaction(M, INGEST, fraction)
addtimer(CALLBACK(reagents, /datum/reagents.proc/trans_to, M, 5), 5)
playsound(M.loc,'sound/items/drink.ogg', rand(10,50), 1)
/obj/structure/lewdfountain
name = "Lewd Fountain"
desc = "You shouldn't see this!"
icon = 'icons/obj/hand_of_god_structures.dmi'
icon_state = "fountain"
anchored = TRUE
density = TRUE
/obj/structure/lewdfountain/lust
name = "fountain of lust"
desc = "A beautiful hand carved fountain, with a carved golden cup atop it. The cup seems to be constantly overflowing with a pink fluid that smells like liquid desire. Just looking at it makes you turned on."
icon = 'icons/obj/hand_of_god_structures.dmi'
icon_state = "fountain"
anchored = TRUE
density = TRUE
var/chalice_taken = 0
/obj/structure/lewdfountain/lust/attack_hand(mob/living/user)
. = ..()
if(.)
return
if(chalice_taken == 1)
to_chat(user, "<i>You hear a voice in your head... <b>\"My chalice has already been taken, dear. I cannot give you another...\"</i></b>")
return
if(user.getArousalLoss() < 100)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are not horny enough to receive my blessing, dear~\"</i></b>")
return
if (ishuman(user) && user.has_dna())
user.mob_climax(forced_climax=TRUE)
to_chat(user, "<i>You hear a voice in your head... <b>\"You are worth of my blessing dear~\"</i></b>")
to_chat(user, "<span class='userdanger'>You feel overpowering pleasure surge through your entire body.</span>")
var/A = new /obj/item/reagent_containers/chalice/lust
user.put_in_hands(A)
chalice_taken = 1