Merge branch 'master' into bunnypack
This commit is contained in:
@@ -1,6 +1,29 @@
|
||||
//supply packs
|
||||
|
||||
/datum/supply_pack/misc/kinkmate
|
||||
name = "Kinkmate supply Crate"
|
||||
name = "Kinkmate construction kit"
|
||||
cost = 2000
|
||||
contraband = TRUE
|
||||
contains = list(/obj/item/vending_refill/kink)
|
||||
crate_name = "Kinkmate supply crate"
|
||||
contains = list(/obj/item/vending_refill/kink, /obj/item/circuitboard/machine/kinkmate)
|
||||
crate_name = "Kinkmate construction kit"
|
||||
|
||||
|
||||
//Food and livestocks
|
||||
|
||||
/datum/supply_pack/organic/critter/kiwi
|
||||
name = "Space kiwi Crate"
|
||||
cost = 2000
|
||||
contains = list( /mob/living/simple_animal/kiwi)
|
||||
crate_name = "space kiwi crate"
|
||||
|
||||
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
//////////////////////////// Miscellaneous ///////////////////////////////////
|
||||
//////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/datum/supply_pack/misc/disco
|
||||
name = "Disco Ball"
|
||||
cost = 1000000
|
||||
contains = list(/obj/machinery/disco)
|
||||
crate_name = "Disco Ball"
|
||||
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
/datum/gear/stethoscope
|
||||
name = "Stethoscope"
|
||||
category = slot_neck
|
||||
path = /obj/item/clothing/neck/stethoscope
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer")
|
||||
@@ -0,0 +1,71 @@
|
||||
/datum/gear/navyblueuniformhos
|
||||
name = "Head of Security navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/head_of_security/navyblue
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluehosberet
|
||||
name = "Head of security's Naviblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navyhos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluejackethos
|
||||
name = "head of security's navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/hos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluejacketofficer
|
||||
name = "security officer's navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/officer
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navyblueofficerberet
|
||||
name = "Security officer's Navyblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navyofficer
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navyblueuniformofficer
|
||||
name = "security officer navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/security/navyblue
|
||||
restricted_roles = list("Security officer")
|
||||
|
||||
/datum/gear/navybluejacketwarden
|
||||
name = "warden navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/warden
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/navybluewardenberet
|
||||
name = "Warden's navyblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navywarden
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/navyblueuniformwarden
|
||||
name = "Warden navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/warden/navyblue
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/secskirt
|
||||
name = "Security skirt"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/security/skirt
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
|
||||
/datum/gear/hosskirt
|
||||
name = "Head of security's skirt"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/head_of_security/skirt
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/sechud
|
||||
name = "Security Hud"
|
||||
category = slot_glasses
|
||||
path = /obj/item/clothing/glasses/hud/security
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
@@ -0,0 +1,13 @@
|
||||
/datum/gear/plushvar
|
||||
name = "Ratvar Plushie"
|
||||
category = slot_in_backpack
|
||||
path = /obj/item/toy/plush/plushvar
|
||||
cost = 5
|
||||
restricted_roles = list("Chaplain")
|
||||
|
||||
/datum/gear/narplush
|
||||
name = "Narsie Plushie"
|
||||
category = slot_in_backpack
|
||||
path = /obj/item/toy/plush/narplush
|
||||
cost = 5
|
||||
restricted_roles = list("Chaplain")
|
||||
@@ -18,20 +18,6 @@
|
||||
category = slot_in_backpack
|
||||
path = /obj/item/toy/plush/slimeplushie
|
||||
|
||||
/datum/gear/plushvar
|
||||
name = "Ratvar Plushie"
|
||||
category = slot_in_backpack
|
||||
path = /obj/item/toy/plush/plushvar
|
||||
cost = 5
|
||||
restricted_roles = list("Chaplain")
|
||||
|
||||
/datum/gear/narplush
|
||||
name = "Narsie Plushie"
|
||||
category = slot_in_backpack
|
||||
path = /obj/item/toy/plush/narplush
|
||||
cost = 5
|
||||
restricted_roles = list("Chaplain")
|
||||
|
||||
/datum/gear/dildo
|
||||
name = "Customizable dildo"
|
||||
category = slot_in_backpack
|
||||
|
||||
@@ -42,9 +42,3 @@
|
||||
name = "Prescription glasses"
|
||||
category = slot_glasses
|
||||
path = /obj/item/clothing/glasses/regular
|
||||
|
||||
/datum/gear/sechud
|
||||
name = "Security Hud"
|
||||
category = slot_glasses
|
||||
path = /obj/item/clothing/glasses/hud/security
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
|
||||
@@ -47,21 +47,3 @@
|
||||
name = "Top Hat"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/that
|
||||
|
||||
/datum/gear/navybluehosberet
|
||||
name = "Head of security's Naviblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navyhos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navyblueofficerberet
|
||||
name = "Security officer's Navyblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navyofficer
|
||||
restricted_roles = list("Security Officer")
|
||||
|
||||
/datum/gear/navybluewardenberet
|
||||
name = "Warden's navyblue beret"
|
||||
category = slot_head
|
||||
path = /obj/item/clothing/head/beret/sec/navywarden
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
@@ -18,12 +18,6 @@
|
||||
category = slot_neck
|
||||
path = /obj/item/clothing/neck/petcollar
|
||||
|
||||
/datum/gear/stethoscope
|
||||
name = "Stethoscope"
|
||||
category = slot_neck
|
||||
path = /obj/item/clothing/neck/stethoscope
|
||||
restricted_roles = list("Medical Doctor", "Chief Medical Officer")
|
||||
|
||||
/datum/gear/scarf
|
||||
name = "White scarf"
|
||||
category = slot_neck
|
||||
|
||||
@@ -67,21 +67,3 @@
|
||||
name = "Ian Shirt"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/ianshirt
|
||||
|
||||
/datum/gear/navybluejackethos
|
||||
name = "head of security's navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/hos
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navybluejacketwarden
|
||||
name = "warden navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/warden
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/navybluejacketofficer
|
||||
name = "security officer's navyblue jacket"
|
||||
category = slot_wear_suit
|
||||
path = /obj/item/clothing/suit/security/officer
|
||||
restricted_roles = list("Security Officer")
|
||||
@@ -78,25 +78,6 @@
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/kilt
|
||||
|
||||
|
||||
/datum/gear/navyblueuniformhos
|
||||
name = "Head of Security navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/head_of_security/navyblue
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/navyblueuniformwarden
|
||||
name = "Warden navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/warden/navyblue
|
||||
restricted_roles = list("Warden")
|
||||
|
||||
/datum/gear/navyblueuniformofficer
|
||||
name = "security officer navyblue uniform"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/security/navyblue
|
||||
restricted_roles = list("Security officer")
|
||||
|
||||
/datum/gear/camoshorts
|
||||
name = "Camo Pants"
|
||||
category = slot_w_uniform
|
||||
@@ -137,20 +118,7 @@
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/pants/track
|
||||
|
||||
/datum/gear/secskirt
|
||||
name = "Security skirt"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/security/skirt
|
||||
restricted_roles = list("Security Officer", "Warden", "Head of Security")
|
||||
|
||||
/datum/gear/hosskirt
|
||||
name = "Head of security's skirt"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/rank/head_of_security/skirt
|
||||
restricted_roles = list("Head of Security")
|
||||
|
||||
/datum/gear/turtleneck
|
||||
name = "Tactitool Turtleneck"
|
||||
category = slot_w_uniform
|
||||
path = /obj/item/clothing/under/syndicate/cosmetic
|
||||
|
||||
|
||||
@@ -7,6 +7,10 @@
|
||||
var/list/gear_categories
|
||||
var/list/chosen_gear
|
||||
var/gear_tab
|
||||
var/screenshake = 100
|
||||
var/damagescreenshake = 2
|
||||
var/arousable = TRUE
|
||||
var/widescreenpref = TRUE
|
||||
|
||||
/datum/preferences/New(client/C)
|
||||
..()
|
||||
|
||||
@@ -0,0 +1,178 @@
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
// Polychromic Clothes: //
|
||||
// //
|
||||
// Polychromic clothes simply consist of 4 sprites: A base, unrecoloured sprite, and up to 3 greyscaled sprites. //
|
||||
// In order to add more polychromic clothes, simply create a base sprite, and up to 3 recolourable overlays for it, //
|
||||
// and then name them as follows: [name], [name]-primary, [name]-secondary, [name]-tertiary. The sprites should //
|
||||
// ideally be in 'modular_citadel/icons/polyclothes/item/uniform.dmi' and 'modular_citadel/icons/polyclothes/mob/uniform.dmi' for the //
|
||||
// worn sprites. After that, copy paste the code from any of the example clothes beneath the giant mass of procs and //
|
||||
// change the names around. [name] should go in BOTH icon_state and item_color. You can preset colors and disable //
|
||||
// any overlays using the self-explainatory vars. //
|
||||
// //
|
||||
// -Tori //
|
||||
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
/obj/item/clothing/under/polychromic //This is the parent object. DO NOT copy paste this and its vars if you want to make something new.
|
||||
name = "polychromic suit"
|
||||
desc = "For when you want to show off your horrible colour coordination skills."
|
||||
icon = 'modular_citadel/icons/polyclothes/item/uniform.dmi'
|
||||
alternate_worn_icon = 'modular_citadel/icons/polyclothes/mob/uniform.dmi' //To make human/update_icon.dm read worn sprites from here.
|
||||
icon_state = "polysuit"
|
||||
item_color = "polysuit" //The item color is used to select its mob icon
|
||||
item_state = "sl_suit" //Inhand sprites. Would be an arse to make one for all the clothes. Should probably be standardized to rainbow.
|
||||
can_adjust = FALSE //to prevent you from "wearing it casually"
|
||||
|
||||
var/hasprimary = TRUE //These vars allow you to choose which overlays a clothing has
|
||||
var/hassecondary = TRUE
|
||||
var/hastertiary = TRUE
|
||||
|
||||
var/primary_color = "#FFFFFF" //RGB in hexcode
|
||||
var/secondary_color = "#FFFFFF"
|
||||
var/tertiary_color = "#808080"
|
||||
|
||||
/obj/item/clothing/under/polychromic/update_icon()
|
||||
..()
|
||||
cut_overlays() //prevents the overlays from infinitely stacking
|
||||
if(hasprimary) //Checks if the overlay is enabled
|
||||
var/mutable_appearance/primary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-primary") //Automagically picks overlays
|
||||
primary_overlay.color = primary_color //Colors the greyscaled overlay
|
||||
add_overlay(primary_overlay) //Applies the coloured overlay onto the item sprite. but NOT the mob sprite.
|
||||
if(hassecondary)
|
||||
var/mutable_appearance/secondary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-secondary")
|
||||
secondary_overlay.color = secondary_color
|
||||
add_overlay(secondary_overlay)
|
||||
if(hastertiary)
|
||||
var/mutable_appearance/tertiary_overlay = mutable_appearance('modular_citadel/icons/polyclothes/item/uniform.dmi', "[item_color]-tertiary")
|
||||
tertiary_overlay.color = tertiary_color
|
||||
add_overlay(tertiary_overlay)
|
||||
|
||||
/obj/item/clothing/under/polychromic/AltClick(mob/living/user)
|
||||
if(!in_range(src, user)) //Basic checks to prevent abuse
|
||||
return
|
||||
if(user.incapacitated() || !istype(user))
|
||||
to_chat(user, "<span class='warning'>You can't do that right now!</span>")
|
||||
return
|
||||
|
||||
var/choice = input(user,"polychromic thread options", "Clothing Recolor") as null|anything in list("[hasprimary ? "Primary Color" : ""]", "[hassecondary ? "Secondary Color" : ""]", "[hastertiary ? "Tertiary Color" : ""]") //generates a list depending on the enabled overlays
|
||||
switch(choice) //Lets the list's options actually lead to something
|
||||
if("Primary Color")
|
||||
var/primary_color_input = input(usr,"","Choose Primary Color",primary_color) as color|null //color input menu, the "|null" adds a cancel button to it.
|
||||
if(primary_color_input) //Checks if the color selected is NULL, rejects it if it is NULL.
|
||||
primary_color = sanitize_hexcolor(primary_color_input, desired_format=6, include_crunch=1) //formats the selected color properly
|
||||
update_icon() //updates the item icon
|
||||
user.update_inv_w_uniform() //updates the worn icon
|
||||
if("Secondary Color")
|
||||
var/secondary_color_input = input(usr,"","Choose Secondary Color",secondary_color) as color|null
|
||||
if(secondary_color_input)
|
||||
secondary_color = sanitize_hexcolor(secondary_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
user.update_inv_w_uniform()
|
||||
if("Tertiary Color")
|
||||
var/tertiary_color_input = input(usr,"","Choose Tertiary Color",tertiary_color) as color|null
|
||||
if(tertiary_color_input)
|
||||
tertiary_color = sanitize_hexcolor(tertiary_color_input, desired_format=6, include_crunch=1)
|
||||
update_icon()
|
||||
user.update_inv_w_uniform()
|
||||
|
||||
/obj/item/clothing/under/polychromic/worn_overlays(isinhands, icon_file) //this is where the main magic happens
|
||||
. = ..()
|
||||
if(!isinhands) //prevents the worn sprites from showing up if you're just holding them
|
||||
if(hasprimary) //checks if overlays are enabled
|
||||
var/mutable_appearance/primary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-primary") //automagical sprite selection
|
||||
primary_worn.color = primary_color //colors the overlay
|
||||
. += primary_worn //adds the overlay onto the buffer list to draw on the mob sprite.
|
||||
if(hassecondary)
|
||||
var/mutable_appearance/secondary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-secondary")
|
||||
secondary_worn.color = secondary_color
|
||||
. += secondary_worn
|
||||
if(hastertiary)
|
||||
var/mutable_appearance/tertiary_worn = mutable_appearance('modular_citadel/icons/polyclothes/mob/uniform.dmi', "[item_color]-tertiary")
|
||||
tertiary_worn.color = tertiary_color
|
||||
. += tertiary_worn
|
||||
|
||||
/obj/item/clothing/under/polychromic/examine(mob/user)
|
||||
..()
|
||||
to_chat(user, "<span class='notice'>Alt-click to recolor it.</span>") // so people don't "OOC how do you use polychromic clothes????"
|
||||
|
||||
/obj/item/clothing/under/polychromic/Initialize()
|
||||
..()
|
||||
update_icon() //Applies the overlays and default colors onto the clothes on spawn.
|
||||
|
||||
/obj/item/clothing/under/polychromic/shirt //COPY PASTE THIS TO MAKE A NEW THING
|
||||
name = "polychromic button-up shirt"
|
||||
desc = "A fancy button-up shirt made with polychromic threads."
|
||||
icon_state = "polysuit"
|
||||
item_color = "polysuit"
|
||||
item_state = "sl_suit"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = TRUE
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#353535"
|
||||
tertiary_color = "#353535"
|
||||
|
||||
/obj/item/clothing/under/polychromic/kilt
|
||||
name = "polychromic kilt"
|
||||
desc = "It's not a skirt!"
|
||||
icon_state = "polykilt"
|
||||
item_color = "polykilt"
|
||||
item_state = "kilt"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = TRUE
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#F08080"
|
||||
tertiary_color = "#808080"
|
||||
|
||||
/obj/item/clothing/under/polychromic/skirt
|
||||
name = "polychromic skirt"
|
||||
desc = "A fancy skirt made with polychromic threads."
|
||||
icon_state = "polyskirt"
|
||||
item_color = "polyskirt"
|
||||
item_state = "rainbow"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = TRUE
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#F08080"
|
||||
tertiary_color = "#808080"
|
||||
|
||||
/obj/item/clothing/under/polychromic/shorts
|
||||
name = "polychromic shorts"
|
||||
desc = "For ease of movement and style."
|
||||
icon_state = "polyshorts"
|
||||
item_color = "polyshorts"
|
||||
item_state = "rainbow"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = TRUE
|
||||
primary_color = "#353535" //RGB in hexcode
|
||||
secondary_color = "#808080"
|
||||
tertiary_color = "#808080"
|
||||
|
||||
/obj/item/clothing/under/polychromic/jumpsuit
|
||||
name = "polychromic tri-tone jumpsuit"
|
||||
desc = "A fancy jumpsuit made with polychromic threads."
|
||||
icon_state = "polyjump"
|
||||
item_color = "polyjump"
|
||||
item_state = "rainbow"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = TRUE
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#808080"
|
||||
tertiary_color = "#FF3535"
|
||||
|
||||
/obj/item/clothing/under/polychromic/shortpants
|
||||
name = "polychromic athletic shorts"
|
||||
desc = "95% Polychrome, 5% Spandex!"
|
||||
icon_state = "polyshortpants"
|
||||
item_color = "polyshortpants"
|
||||
item_state = "rainbow"
|
||||
hasprimary = TRUE
|
||||
hassecondary = TRUE
|
||||
hastertiary = FALSE
|
||||
primary_color = "#FFFFFF" //RGB in hexcode
|
||||
secondary_color = "#F08080"
|
||||
gender = PLURAL //Because shortS
|
||||
body_parts_covered = GROIN //Because there's no shirt included
|
||||
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Turtlenecks in general go here!
|
||||
*/
|
||||
|
||||
//CMO's Turtleneck, because they don't have any unique clothes!
|
||||
|
||||
/obj/item/clothing/under/rank/chief_medical_officer/turtleneck
|
||||
desc = "It's a turtleneck worn by those with the experience to be \"Chief Medical Officer\". It provides minor biological protection, for an officer with a superior sense of style and practicality."
|
||||
name = "chief medical officer's turtleneck"
|
||||
alternate_worn_icon = 'modular_citadel/icons/mob/clothing/turtlenecks.dmi'
|
||||
icon = 'modular_citadel/icons/obj/clothing/turtlenecks.dmi'
|
||||
icon_state = "cmoturtle"
|
||||
item_state = "w_suit"
|
||||
item_color = "cmoturtle"
|
||||
permeability_coefficient = 0.5
|
||||
armor = list(melee = 0, bullet = 0, laser = 0,energy = 0, bomb = 0, bio = 10, rad = 0, fire = 0, acid = 0)
|
||||
can_adjust = TRUE
|
||||
alt_covers_chest = TRUE
|
||||
|
||||
/obj/structure/closet/secure_closet/CMO/PopulateContents() //This is placed here because it's a very specific addition for a very specific niche
|
||||
..()
|
||||
new /obj/item/clothing/under/rank/chief_medical_officer/turtleneck(src)
|
||||
@@ -0,0 +1,134 @@
|
||||
/mob/living/simple_animal/kiwi
|
||||
name = "space kiwi"
|
||||
desc = "Exposure to low gravity made them grow larger."
|
||||
gender = FEMALE
|
||||
icon = 'modular_citadel/icons/mob/kiwi.dmi'
|
||||
icon_state = "kiwi"
|
||||
icon_living = "kiwi"
|
||||
icon_dead = "dead"
|
||||
speak = list("Chirp!","Cheep cheep chirp!!","Cheep.")
|
||||
speak_emote = list("chirps","trills")
|
||||
emote_hear = list("chirps.")
|
||||
emote_see = list("pecks at the ground.","jumps in place.")
|
||||
density = FALSE
|
||||
speak_chance = 2
|
||||
turns_per_move = 3
|
||||
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 3)
|
||||
var/egg_type = /obj/item/reagent_containers/food/snacks/egg/kiwiEgg
|
||||
var/food_type = /obj/item/reagent_containers/food/snacks/grown/wheat
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "kicks"
|
||||
attacktext = "kicks"
|
||||
health = 25
|
||||
maxHealth = 25
|
||||
ventcrawler = VENTCRAWLER_ALWAYS
|
||||
var/eggsleft = 0
|
||||
var/eggsFertile = TRUE
|
||||
pass_flags = PASSTABLE | PASSMOB
|
||||
mob_size = MOB_SIZE_SMALL
|
||||
var/list/feedMessages = list("It chirps happily.","It chirps happily.")
|
||||
var/list/layMessage = list("lays an egg.","squats down and croons.","begins making a huge racket.","begins chirping raucously.")
|
||||
gold_core_spawnable = FRIENDLY_SPAWN
|
||||
var/static/kiwi_count = 0
|
||||
|
||||
/mob/living/simple_animal/kiwi/Destroy()
|
||||
--kiwi_count
|
||||
return ..()
|
||||
|
||||
|
||||
/mob/living/simple_animal/kiwi/Initialize()
|
||||
. = ..()
|
||||
++kiwi_count
|
||||
|
||||
|
||||
/mob/living/simple_animal/kiwi/Life()
|
||||
. =..()
|
||||
if(!.)
|
||||
return
|
||||
if((!stat && prob(3) && eggsleft > 0) && egg_type)
|
||||
visible_message("[src] [pick(layMessage)]")
|
||||
eggsleft--
|
||||
var/obj/item/E = new egg_type(get_turf(src))
|
||||
E.pixel_x = rand(-6,6)
|
||||
E.pixel_y = rand(-6,6)
|
||||
if(eggsFertile)
|
||||
if(kiwi_count < MAX_CHICKENS && prob(25))
|
||||
START_PROCESSING(SSobj, E)
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/egg/kiwiEgg/process()
|
||||
if(isturf(loc))
|
||||
amount_grown += rand(1,2)
|
||||
if(amount_grown >= 100)
|
||||
visible_message("[src] hatches with a quiet cracking sound.")
|
||||
new /mob/living/simple_animal/babyKiwi(get_turf(src))
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
qdel(src)
|
||||
else
|
||||
STOP_PROCESSING(SSobj, src)
|
||||
|
||||
|
||||
/mob/living/simple_animal/kiwi/attackby(obj/item/O, mob/user, params)
|
||||
if(istype(O, food_type)) //feedin' dem kiwis
|
||||
if(!stat && eggsleft < 8)
|
||||
var/feedmsg = "[user] feeds [O] to [name]! [pick(feedMessages)]"
|
||||
user.visible_message(feedmsg)
|
||||
qdel(O)
|
||||
eggsleft += rand(1, 4)
|
||||
else
|
||||
to_chat(user, "<span class='warning'>[name] doesn't seem hungry!</span>")
|
||||
else
|
||||
..()
|
||||
|
||||
|
||||
/mob/living/simple_animal/babyKiwi
|
||||
name = "baby space kiwi"
|
||||
desc = "So huggable."
|
||||
icon = 'modular_citadel/icons/mob/kiwi.dmi'
|
||||
icon_state = "babyKiwi"
|
||||
icon_living = "babyKiwi"
|
||||
icon_dead = "deadBaby"
|
||||
icon_gib = "chick_gib"
|
||||
gender = FEMALE
|
||||
speak = list("Cherp.","Cherp?","Chirrup.","Cheep!")
|
||||
speak_emote = list("chirps")
|
||||
emote_hear = list("chirps.")
|
||||
emote_see = list("pecks at the ground.","Happily bounces in place.")
|
||||
density = FALSE
|
||||
speak_chance = 2
|
||||
turns_per_move = 2
|
||||
butcher_results = list(/obj/item/reagent_containers/food/snacks/meat/slab = 2)
|
||||
response_help = "pets"
|
||||
response_disarm = "gently pushes aside"
|
||||
response_harm = "kicks"
|
||||
attacktext = "kicks"
|
||||
health = 10
|
||||
maxHealth = 10
|
||||
ventcrawler = VENTCRAWLER_ALWAYS
|
||||
var/amount_grown = 0
|
||||
pass_flags = PASSTABLE | PASSGRILLE | PASSMOB
|
||||
mob_size = MOB_SIZE_TINY
|
||||
gold_core_spawnable = FRIENDLY_SPAWN
|
||||
|
||||
/mob/living/simple_animal/babyKiwi/Initialize()
|
||||
. = ..()
|
||||
pixel_x = rand(-6, 6)
|
||||
pixel_y = rand(0, 10)
|
||||
|
||||
/mob/living/simple_animal/babyKiwi/Life()
|
||||
. =..()
|
||||
if(!.)
|
||||
return
|
||||
if(!stat && !ckey)
|
||||
amount_grown += rand(1,2)
|
||||
if(amount_grown >= 100)
|
||||
new /mob/living/simple_animal/kiwi(src.loc)
|
||||
qdel(src)
|
||||
|
||||
|
||||
/obj/item/reagent_containers/food/snacks/egg/kiwiEgg
|
||||
name = "kiwi egg"
|
||||
icon = 'modular_citadel/icons/mob/kiwi.dmi'
|
||||
desc = "A slightly bigger egg!"
|
||||
icon_state = "egg"
|
||||
|
||||
Reference in New Issue
Block a user