From 9d8a729c5183bfbb6ba73d3e4f5373249ad8200e Mon Sep 17 00:00:00 2001 From: Dip Date: Tue, 20 Oct 2020 02:46:13 -0300 Subject: [PATCH 1/4] Ports Lia / Micro Carp Buff? --- .../mob/living/simple_animal/hostile/carp.dm | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index 6c051a0e..fe3d6212 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -17,8 +17,8 @@ emote_taunt = list("gnashes") taunt_chance = 30 speed = 0 - maxHealth = 25 - health = 25 + maxHealth = 35 + health = 35 spacewalk = TRUE harm_intent_damage = 8 obj_damage = 50 @@ -107,4 +107,16 @@ melee_damage_lower = 15 melee_damage_upper = 18 +/mob/living/simple_animal/hostile/carp/cayenne/lia + name = "Lia" + real_name = "Lia" + desc = "A failed experiment of Nanotrasen to create weaponised carp technology, now acquired by Kinaris. This less than intimidating carp now serves as the Head of Security's pet." + faction = list("neutral", "carp") + health = 200 + icon_dead = "magicarp_dead" + icon_gib = "magicarp_gib" + icon_living = "magicarp" + icon_state = "magicarp" + maxHealth = 200 + #undef REGENERATION_DELAY From ddcf4e14342c21590152459c0e586ecac3462fab Mon Sep 17 00:00:00 2001 From: Dip Date: Tue, 20 Oct 2020 03:14:45 -0300 Subject: [PATCH 2/4] Adds petting element to Lia and Cayenne, alongside mob holder. --- code/modules/mob/living/simple_animal/hostile/carp.dm | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index fe3d6212..a8ea6ff7 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -106,6 +106,12 @@ obj_damage = 70 melee_damage_lower = 15 melee_damage_upper = 18 + var/held_icon = "carp" + +/mob/living/simple_animal/hostile/carp/cayenne/ComponentInitialize() + . = ..() + AddElement(/datum/element/wuv, "bloops happily!", EMOTE_AUDIBLE, /datum/mood_event/pet_animal, "gnashes!", EMOTE_AUDIBLE) + AddElement(/datum/element/mob_holder, held_icon) /mob/living/simple_animal/hostile/carp/cayenne/lia name = "Lia" @@ -118,5 +124,6 @@ icon_living = "magicarp" icon_state = "magicarp" maxHealth = 200 + held_icon = "magicarp" #undef REGENERATION_DELAY From dc0a988d6c07d238bc2b9ea22ee9c80998899df9 Mon Sep 17 00:00:00 2001 From: Dip Date: Fri, 23 Oct 2020 05:55:58 -0300 Subject: [PATCH 3/4] Energy Harvester V1 --- code/modules/cargo/packs.dm | 9 ++ tgstation.dme | 1 + .../code/modules/power/energyharvester.dm | 88 +++++++++++++++++++ 3 files changed, 98 insertions(+) create mode 100644 yogstation/code/modules/power/energyharvester.dm diff --git a/code/modules/cargo/packs.dm b/code/modules/cargo/packs.dm index 9d47a6cf..108b8366 100644 --- a/code/modules/cargo/packs.dm +++ b/code/modules/cargo/packs.dm @@ -1003,6 +1003,15 @@ contains = list(/obj/item/circuitboard/computer/sat_control) crate_name= "shield control board crate" +/datum/supply_pack/engine/energy_harvester + name = "Energy Harvesting Module" + desc = "A Device which upon connection to a node, will harvest the energy and send it to engineerless stations in return for credits, derived from a syndicate powersink model." + cost = 7500 + access = ACCESS_CE + contains = list(/obj/item/energy_harvester) + crate_name = "energy harvesting module crate" + crate_type = /obj/structure/closet/crate/secure/engineering + ////////////////////////////////////////////////////////////////////////////// //////////////////////// Engine Construction ///////////////////////////////// ////////////////////////////////////////////////////////////////////////////// diff --git a/tgstation.dme b/tgstation.dme index 5a40514d..b627e1b0 100644 --- a/tgstation.dme +++ b/tgstation.dme @@ -3215,4 +3215,5 @@ #include "modular_citadel\code\modules\vore\eating\voreitems.dm" #include "modular_citadel\code\modules\vore\eating\vorepanel_vr.dm" #include "modular_citadel\interface\skin.dmf" +#include "yogstation\code\modules\power\energyharvester.dm" // END_INCLUDE diff --git a/yogstation/code/modules/power/energyharvester.dm b/yogstation/code/modules/power/energyharvester.dm new file mode 100644 index 00000000..cffffa9b --- /dev/null +++ b/yogstation/code/modules/power/energyharvester.dm @@ -0,0 +1,88 @@ +/obj/item/energy_harvester + desc = "A Device which upon connection to a node, will harvest the energy and send it to engineerless stations in return for credits, derived from a syndicate powersink model." + name = "Energy Harvesting Module" + icon_state = "powersink0" + icon = 'icons/obj/device.dmi' + item_state = "electronic" + lefthand_file = 'icons/mob/inhands/misc/devices_lefthand.dmi' + righthand_file = 'icons/mob/inhands/misc/devices_righthand.dmi' + w_class= WEIGHT_CLASS_BULKY + flags_1 = CONDUCT_1 + throwforce = 1 + throw_speed = 1 + throw_range = 1 + materials = list(MAT_METAL=750) + var/drain_rate = 100000000 + var/power_drained = 0 + var/obj/structure/cable/attached + var/datum/looping_sound/generator/soundloop + var/active = 0 + var/lastprocessed = 0 + + +/obj/item/energy_harvester/attackby(obj/item/I, mob/user, params) + if(I.tool_behaviour == TOOL_SCREWDRIVER) + if(!anchored) + var/turf/T = loc + if(isturf(T) && !T.intact) + attached = locate() in T + if(!attached) + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + I.play_tool_sound(src) + START_PROCESSING(SSobj, src) + anchored = 1 + density = 1 + user.visible_message( \ + "[user] attaches \the [src] to the cable.", \ + "You attach \the [src] to the cable.", + "You hear some wires being connected to something.") + else + to_chat(user, "This device must be placed over an exposed, powered cable node!") + else + I.play_tool_sound(src) + STOP_PROCESSING(SSobj, src) + anchored = 0 + density = 0 + user.visible_message( \ + "[user] detaches \the [src] from the cable.", \ + "You detach \the [src] from the cable.", + "You hear some wires being disconnected from something.") + +/obj/item/energy_harvester/process() + if(!attached || !anchored) + return PROCESS_KILL + + var/datum/powernet/PN = attached.powernet + if(PN) + set_light(1,1,LIGHT_COLOR_ORANGE) + var/power_avaliable = PN.netexcess + if(power_avaliable <= 0) + soundloop.stop() + active = 0 + return + soundloop.start() + active = 1 + power_avaliable = min(power_avaliable, drain_rate) + attached.add_delayedload(power_avaliable) + lastprocessed = (power_avaliable * 0.00001) + SSshuttle.points += lastprocessed + +/obj/item/energy_harvester/Initialize() + . = ..() + new /obj/item/gps/internal/energy_harvester(src) + soundloop = new(list(src), FALSE) + +/obj/item/energy_harvester/Destroy() + QDEL_NULL(soundloop) + return ..() + +/obj/item/energy_harvester/examine(mob/user) + . = ..() + if(active) + . += "The [src]'s display states that it is processing approximately [lastprocessed*60] credits per minute." + else + . += "The [src]'s display is currently offline." + +/obj/item/gps/internal/energy_harvester + gpstag = "Energy Harvester" From 61fad3f3de0fbd16e3e772d6f3f2fc6cbb091507 Mon Sep 17 00:00:00 2001 From: Dip Date: Fri, 23 Oct 2020 19:18:03 -0300 Subject: [PATCH 4/4] debuff carps, dormammu has not accepted bargain --- code/modules/mob/living/simple_animal/hostile/carp.dm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/code/modules/mob/living/simple_animal/hostile/carp.dm b/code/modules/mob/living/simple_animal/hostile/carp.dm index a8ea6ff7..2a3170f0 100644 --- a/code/modules/mob/living/simple_animal/hostile/carp.dm +++ b/code/modules/mob/living/simple_animal/hostile/carp.dm @@ -17,8 +17,8 @@ emote_taunt = list("gnashes") taunt_chance = 30 speed = 0 - maxHealth = 35 - health = 35 + maxHealth = 25 + health = 25 spacewalk = TRUE harm_intent_damage = 8 obj_damage = 50