diff --git a/code/modules/hydroponics/grown/mushrooms.dm b/code/modules/hydroponics/grown/mushrooms.dm index 2f7442a3966..22c2e119dcb 100644 --- a/code/modules/hydroponics/grown/mushrooms.dm +++ b/code/modules/hydroponics/grown/mushrooms.dm @@ -20,6 +20,7 @@ oneharvest = 1 growthstages = 4 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("morphine" = 0.35, "charcoal" = 0.35, "nutriment" = 0) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/reishi @@ -46,6 +47,7 @@ oneharvest = 1 growthstages = 3 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/angel) reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.35, "nutriment" = 0) @@ -74,6 +76,7 @@ oneharvest = 1 growthstages = 3 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("mushroomhallucinogen" = 0.04, "amatoxin" = 0.1, "nutriment" = 0, "amanitin" = 0.2) rarity = 30 origin_tech = "biotech=5" @@ -101,6 +104,7 @@ oneharvest = 1 growthstages = 3 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("mushroomhallucinogen" = 0.25, "nutriment" = 0.02) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/libertycap @@ -126,6 +130,7 @@ oneharvest = 1 growthstages = 3 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/plump/walkingmushroom) reagents_add = list("vitamin" = 0.04, "nutriment" = 0.1) @@ -149,6 +154,7 @@ endurance = 30 maturation = 5 yield = 1 + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list() reagents_add = list("vitamin" = 0.05, "nutriment" = 0.15) rarity = 30 @@ -191,6 +197,7 @@ oneharvest = 1 growthstages = 3 plant_type = PLANT_MUSHROOM + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' reagents_add = list("nutriment" = 0.1) /obj/item/weapon/reagent_containers/food/snacks/grown/mushroom/chanterelle @@ -220,6 +227,7 @@ plant_type = PLANT_MUSHROOM rarity = 20 genes = list(/datum/plant_gene/trait/glow) + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' mutatelist = list(/obj/item/seeds/glowshroom/glowcap) reagents_add = list("radium" = 0.1, "phosphorus" = 0.1, "nutriment" = 0.04) diff --git a/code/modules/hydroponics/grown/towercap.dm b/code/modules/hydroponics/grown/towercap.dm index 61aabb318da..b403ebee52f 100644 --- a/code/modules/hydroponics/grown/towercap.dm +++ b/code/modules/hydroponics/grown/towercap.dm @@ -13,6 +13,7 @@ potency = 50 oneharvest = 1 growthstages = 3 + growing_icon = 'icons/obj/hydroponics/growing_mushrooms.dmi' icon_dead = "towercap-dead" plant_type = PLANT_MUSHROOM mutatelist = list(/obj/item/seeds/tower/steel) diff --git a/code/modules/hydroponics/seeds.dm b/code/modules/hydroponics/seeds.dm index 5bc2eef955a..aa7f785b152 100644 --- a/code/modules/hydroponics/seeds.dm +++ b/code/modules/hydroponics/seeds.dm @@ -247,6 +247,10 @@ // Maybe some day it would be used as unit test. /proc/check_plants_growth_stages_icons() var/list/states = icon_states('icons/obj/hydroponics/growing.dmi') + states |= icon_states('icons/obj/hydroponics/growing_fruits.dmi') + states |= icon_states('icons/obj/hydroponics/growing_flowers.dmi') + states |= icon_states('icons/obj/hydroponics/growing_mushrooms.dmi') + states |= icon_states('icons/obj/hydroponics/growing_vegetables.dmi') var/list/paths = typesof(/obj/item/seeds) - /obj/item/seeds - typesof(/obj/item/seeds/sample) for(var/seedpath in paths) diff --git a/code/modules/projectiles/guns/projectile/laser_gatling.dm b/code/modules/projectiles/guns/projectile/laser_gatling.dm new file mode 100644 index 00000000000..9633418413a --- /dev/null +++ b/code/modules/projectiles/guns/projectile/laser_gatling.dm @@ -0,0 +1,154 @@ + + +//The ammo/gun is stored in a back slot item +/obj/item/weapon/minigunpack + name = "backpack power source" + desc = "The massive external power source for the laser gatling gun" + icon = 'icons/obj/guns/minigun.dmi' + icon_state = "holstered" + item_state = "backpack" + slot_flags = SLOT_BACK + w_class = 5 + var/obj/item/weapon/gun/projectile/minigun/gun = null + var/armed = 0 //whether the gun is attached, 0 is attached, 1 is the gun is wielded. + var/overheat = 0 + var/overheat_max = 40 + var/heat_diffusion = 1 + +/obj/item/weapon/minigunpack/New() + gun = new(src) + SSobj.processing += src + ..() + +/obj/item/weapon/minigunpack/Destroy() + SSobj.processing -= src + ..() + +/obj/item/weapon/minigunpack/process() + overheat = max(0, overheat - heat_diffusion) + +/obj/item/weapon/minigunpack/attack_hand(var/mob/living/carbon/user) + if(src.loc == user) + if(!armed) + if(user.get_item_by_slot(slot_back) == src) + armed = 1 + if(!user.put_in_hands(gun)) + armed = 0 + user << "You need a free hand to hold the gun!" + return + update_icon() + gun.forceMove(user) + user.update_inv_back() + else + user << "You are already holding the gun!" + else + ..() + +/obj/item/weapon/minigunpack/attackby(obj/item/weapon/W, mob/user, params) + if(W == gun) //Don't need armed check, because if you have the gun assume its armed. + user.unEquip(gun,1) + else + ..() + +/obj/item/weapon/minigunpack/dropped(mob/user) + if(armed) + user.unEquip(gun,1) + +/obj/item/weapon/minigunpack/MouseDrop(atom/over_object) + if(armed) + return + if(iscarbon(usr)) + var/mob/M = usr + + if(!over_object) + return + + if(!M.restrained() && !M.stat) + + if(istype(over_object, /obj/screen/inventory/hand)) + var/obj/screen/inventory/hand/H = over_object + if(!M.unEquip(src)) + return + switch(H.slot_id) + if(slot_r_hand) + M.put_in_r_hand(src) + if(slot_l_hand) + M.put_in_l_hand(src) + + +/obj/item/weapon/minigunpack/update_icon() + if(armed) + icon_state = "notholstered" + else + icon_state = "holstered" + +/obj/item/weapon/minigunpack/proc/attach_gun(var/mob/user) + if(!gun) + gun = new(src) + gun.forceMove(src) + armed = 0 + if(user) + user << "You attach the [gun.name] to the [name]." + else + src.visible_message("The [gun.name] snaps back onto the [name]!") + update_icon() + user.update_inv_back() + + +/obj/item/weapon/gun/projectile/minigun + name = "laser gatling gun" + desc = "An advanced laser cannon with an incredible rate of fire. Requires a bulky backpack power source to use." + icon = 'icons/obj/guns/minigun.dmi' + icon_state = "minigun_spin" + item_state = "minigun" + origin_tech = "combat=6;powerstorage=5;magnets=4" + flags = CONDUCT | HANDSLOW + slowdown = 1 + slot_flags = null + w_class = 5 + materials = list() + burst_size = 3 + automatic = 0 + fire_delay = 1 + weapon_weight = WEAPON_HEAVY + fire_sound = 'sound/weapons/Laser.ogg' + mag_type = /obj/item/ammo_box/magazine/internal/minigun + var/obj/item/weapon/minigunpack/ammo_pack + +/obj/item/weapon/gun/projectile/minigun/attack_self(mob/living/user) + return + +/obj/item/weapon/gun/projectile/minigun/dropped(mob/user) + if(ammo_pack) + ammo_pack.attach_gun(user) + else + qdel(src) + +/obj/item/weapon/gun/projectile/minigun/shoot_live_shot(mob/living/user as mob|obj, pointblank = 0, mob/pbtarget = null, message = 1) + if(ammo_pack) + if(ammo_pack.overheat < ammo_pack.overheat_max) + . = ..() + ammo_pack.overheat++ + else + user << "The gun's heat sensor locked the trigger to prevent lens damage." + +/obj/item/weapon/gun/projectile/minigun/afterattack(atom/target, mob/living/user, flag, params) + if(!ammo_pack || ammo_pack.loc != user) + user << "You need the backpack power source to fire the gun!" + ..() + +/obj/item/weapon/gun/projectile/minigun/New() + if(!ammo_pack) + if(istype(loc,/obj/item/weapon/minigunpack)) //We should spawn inside a ammo pack so let's use that one. + ammo_pack = loc + else + qdel(src)//No pack, no gun + ..() + +/obj/item/weapon/gun/projectile/minigun/dropped(mob/living/user) + ammo_pack.attach_gun(user) + return + +/obj/item/weapon/gun/projectile/minigun/process_chamber(eject_casing = 0, empty_chamber = 1) + ..() + diff --git a/icons/obj/hydroponics/growing_flowers.dmi b/icons/obj/hydroponics/growing_flowers.dmi new file mode 100644 index 00000000000..e1f308c87b4 Binary files /dev/null and b/icons/obj/hydroponics/growing_flowers.dmi differ diff --git a/icons/obj/hydroponics/growing_fruits.dmi b/icons/obj/hydroponics/growing_fruits.dmi new file mode 100644 index 00000000000..0f0f7c9b733 Binary files /dev/null and b/icons/obj/hydroponics/growing_fruits.dmi differ diff --git a/icons/obj/hydroponics/growing_mushrooms.dmi b/icons/obj/hydroponics/growing_mushrooms.dmi new file mode 100644 index 00000000000..eb4405bf8bf Binary files /dev/null and b/icons/obj/hydroponics/growing_mushrooms.dmi differ diff --git a/icons/obj/hydroponics/growing_vegetables.dmi b/icons/obj/hydroponics/growing_vegetables.dmi new file mode 100644 index 00000000000..070d3531a21 Binary files /dev/null and b/icons/obj/hydroponics/growing_vegetables.dmi differ