Merge pull request #3767 from Tastyfish/silence

Tranquillité, Prospérité & Mimeré
This commit is contained in:
TheDZD
2016-03-08 19:32:29 -05:00
41 changed files with 837 additions and 361 deletions
+9 -8
View File
@@ -152,14 +152,15 @@
#define MAX_SUPPLIED_LAW_NUMBER 50
//Material defines
#define MAT_METAL "$metal"
#define MAT_GLASS "$glass"
#define MAT_SILVER "$silver"
#define MAT_GOLD "$gold"
#define MAT_DIAMOND "$diamond"
#define MAT_URANIUM "$uranium"
#define MAT_PLASMA "$plasma"
#define MAT_BANANIUM "$bananium"
#define MAT_METAL "$metal"
#define MAT_GLASS "$glass"
#define MAT_SILVER "$silver"
#define MAT_GOLD "$gold"
#define MAT_DIAMOND "$diamond"
#define MAT_URANIUM "$uranium"
#define MAT_PLASMA "$plasma"
#define MAT_BANANIUM "$bananium"
#define MAT_TRANQUILLITE "$tranquillite"
#define MAX_STACK_SIZE 50
+10 -1
View File
@@ -38,6 +38,8 @@
materials[MAT_PLASMA] = new /datum/material/plasma()
if(mat_list[MAT_BANANIUM])
materials[MAT_BANANIUM] = new /datum/material/bananium()
if(mat_list[MAT_TRANQUILLITE])
materials[MAT_TRANQUILLITE] = new /datum/material/tranquillite()
/datum/material_container/Destroy()
owner = null
@@ -262,4 +264,11 @@
/datum/material/bananium/New()
..()
material_type = MAT_BANANIUM
sheet_type = /obj/item/stack/sheet/mineral/bananium
sheet_type = /obj/item/stack/sheet/mineral/bananium
/datum/material/tranquillite
/datum/material/tranquillite/New()
..()
material_type = MAT_TRANQUILLITE
sheet_type = /obj/item/stack/sheet/mineral/tranquillite
+81 -71
View File
@@ -55,83 +55,93 @@ for reference:
//Barricades, maybe there will be a metal one later...
/obj/structure/barricade
anchored = 1.0
density = 1.0
var/health = 100.0
var/maxhealth = 100.0
var/stacktype = /obj/item/stack/sheet/metal
/obj/structure/barricade/attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, stacktype))
if (src.health < src.maxhealth)
visible_message("\red [user] begins to repair the [src]!")
if(do_after(user,20, target = src))
src.health = src.maxhealth
W:use(1)
visible_message("\red [user] repairs the [src]!")
return
else
return
return
else if (istype(W, /obj/item/weapon/crowbar))
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("<span class='notice'>[user] is prying apart \the [src].</span>", "<span class='notice'>You begin to pry apart \the [src].</span>")
playsound(src, 'sound/items/Crowbar.ogg', 200, 1)
if(do_after(user, 300, target = src) && src && !src.gcDestroyed)
user.visible_message("<span class='notice'>[user] pries apart \the [src].</span>", "<span class='notice'>You pry apart \the [src].</span>")
dismantle()
return
else
switch(W.damtype)
if("fire")
src.health -= W.force * 1
if("brute")
src.health -= W.force * 0.75
else
if (src.health <= 0)
visible_message("<span class='danger'>\The [src] is smashed apart!</span>")
dismantle()
..()
/obj/structure/barricade/ex_act(severity)
switch(severity)
if(1.0)
visible_message("<span class='danger'>\The [src] is blown apart!</span>")
qdel(src)
return
if(2.0)
src.health -= 25
if (src.health <= 0)
visible_message("<span class='danger'>\The [src] is blown apart!</span>")
dismantle()
return
/obj/structure/barricade/blob_act()
src.health -= 25
if (src.health <= 0)
visible_message("\red <B>The blob eats through \the [src]!</B>")
qdel(src)
return
/obj/structure/barricade/CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff.
if(air_group || (height==0))
return 1
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
else
return 0
/obj/structure/barricade/proc/dismantle()
new stacktype(get_turf(src))
new stacktype(get_turf(src))
new stacktype(get_turf(src))
qdel(src)
/obj/structure/barricade/wooden
name = "wooden barricade"
desc = "This space is blocked off by a wooden barricade."
icon = 'icons/obj/structures.dmi'
icon_state = "woodenbarricade"
anchored = 1.0
density = 1.0
var/health = 100.0
var/maxhealth = 100.0
attackby(obj/item/W as obj, mob/user as mob, params)
if (istype(W, /obj/item/stack/sheet/wood))
if (src.health < src.maxhealth)
visible_message("\red [user] begins to repair the [src]!")
if(do_after(user,20, target = src))
src.health = src.maxhealth
W:use(1)
visible_message("\red [user] repairs the [src]!")
return
else
return
return
else if (istype(W, /obj/item/weapon/crowbar))
user.changeNext_move(CLICK_CD_MELEE)
user.visible_message("<span class='notice'>[user] is prying apart \the [src].</span>", "<span class='notice'>You begin to pry apart \the [src].</span>")
playsound(src, 'sound/items/Crowbar.ogg', 200, 1)
if(do_after(user, 300, target = src) && src && !src.gcDestroyed)
user.visible_message("<span class='notice'>[user] pries apart \the [src].</span>", "<span class='notice'>You pry apart \the [src].</span>")
dismantle()
return
else
switch(W.damtype)
if("fire")
src.health -= W.force * 1
if("brute")
src.health -= W.force * 0.75
else
if (src.health <= 0)
visible_message("\red <B>The barricade is smashed apart!</B>")
dismantle()
..()
ex_act(severity)
switch(severity)
if(1.0)
visible_message("\red <B>The barricade is blown apart!</B>")
qdel(src)
return
if(2.0)
src.health -= 25
if (src.health <= 0)
visible_message("\red <B>The barricade is blown apart!</B>")
dismantle()
return
blob_act()
src.health -= 25
if (src.health <= 0)
visible_message("\red <B>The blob eats through the barricade!</B>")
qdel(src)
return
CanPass(atom/movable/mover, turf/target, height=0, air_group=0)//So bullets will fly over and stuff.
if(air_group || (height==0))
return 1
if(istype(mover) && mover.checkpass(PASSTABLE))
return 1
else
return 0
proc/dismantle()
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
new /obj/item/stack/sheet/wood(get_turf(src))
qdel(src)
stacktype = /obj/item/stack/sheet/wood
/obj/structure/barricade/mime
name = "floor"
desc = "Is... this a floor?"
icon = 'icons/effects/water.dmi'
icon_state = "wet_floor_static"
stacktype = /obj/item/stack/sheet/mineral/tranquillite
//Actual Deployable machinery stuff
+2 -1
View File
@@ -261,8 +261,9 @@
mineral = "clown"
/obj/machinery/door/airlock/mime
name = "Airlock"
name = "Tranquillite Airlock"
icon = 'icons/obj/doors/Doorfreezer.dmi'
mineral = "mime"
/obj/machinery/door/airlock/sandstone
name = "Sandstone Airlock"
+1 -1
View File
@@ -23,7 +23,7 @@ var/const/SAFETY_COOLDOWN = 100
component_parts += new /obj/item/weapon/circuitboard/recycler(null)
component_parts += new /obj/item/weapon/stock_parts/matter_bin(null)
component_parts += new /obj/item/weapon/stock_parts/manipulator(null)
materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1))
materials = new /datum/material_container(src, list(MAT_METAL=1, MAT_GLASS=1, MAT_SILVER=1, MAT_GOLD=1, MAT_DIAMOND=1, MAT_PLASMA=1, MAT_URANIUM=1, MAT_BANANIUM=1, MAT_TRANQUILLITE=1))
RefreshParts()
update_icon()
+10 -10
View File
@@ -5,21 +5,21 @@
initial_icon = "mime"
step_in = 2
dir_in = 1 //Facing North.
health = 100
deflect_chance = 3
health = 150
deflect_chance = 30
damage_absorption = list("brute"=0.75,"fire"=1,"bullet"=0.8,"laser"=0.7,"energy"=0.85,"bomb"=1)
max_temperature = 15000
wreckage = /obj/effect/decal/mecha_wreckage/mime
internal_damage_threshold = 25
max_equip = 2
wreckage = /obj/effect/decal/mecha_wreckage/recitence
operation_req_access = list(access_mime)
add_req_access = 0
internal_damage_threshold = 60
max_equip = 3
step_energy_drain = 3
// color = "#87878715"
stepsound = null
/obj/mecha/combat/recitence/loaded/New()
..()
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
var/obj/item/mecha_parts/mecha_equipment/ME = new /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced
ME.attach(src)
ME = new /obj/item/mecha_parts/mecha_equipment/tool/rcd //HAHA IT MAKES WALLS GET IT
ME.attach(src)
return
ME = new /obj/item/mecha_parts/mecha_equipment/tool/mimercd //HAHA IT MAKES WALLS GET IT
ME.attach(src)
+33 -1
View File
@@ -1112,4 +1112,36 @@
scanning = 1
mineral_scan_pulse(occupant,get_turf(loc))
spawn(equip_cooldown)
scanning = 0
scanning = 0
/obj/item/mecha_parts/mecha_equipment/tool/mimercd
name = "Mounted MRCD"
desc = "An exosuit-mounted Mime Rapid Construction Device. (Can be attached to: Recitence)"
icon_state = "mecha_rcd"
origin_tech = "materials=4;bluespace=3;magnets=4;powerstorage=4"
equip_cooldown = 10
energy_drain = 250
range = MELEE|RANGED
/obj/item/mecha_parts/mecha_equipment/tool/mimercd/can_attach(obj/mecha/combat/recitence/M as obj)
if(..())
if(istype(M))
return 1
return 0
/obj/item/mecha_parts/mecha_equipment/tool/mimercd/action(atom/target)
if(istype(target, /turf/space/transit))//>implying these are ever made -Sieve
return
if(!istype(target, /turf) && !istype(target, /obj/machinery/door/airlock))
target = get_turf(target)
if(!action_checks(target) || get_dist(chassis, target)>3)
return
if(istype(target, /turf/simulated/floor))
occupant_message("Building Wall...")
set_ready_state(0)
if(do_after_cooldown(target))
new /obj/structure/barricade/mime(target)
chassis.spark_system.start()
chassis.use_power(energy_drain*2)
+12 -3
View File
@@ -160,6 +160,9 @@
spawn(20)
if(thingy)
walk(thingy,0)
for(var/obj/mecha/combat/recitence/R in oview(6, chassis))
R.occupant_message("\The [R] has protected you from [chassis]'s HONK at the cost of some power.")
R.use_power(R.get_charge() / 4)
chassis.use_power(energy_drain)
log_message("Honked from [src.name]. HONK!")
@@ -244,15 +247,21 @@
do_after_cooldown()
return
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/silenced
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced
name = "\improper S.H.H. \"Quietus\" Carbine"
fire_sound = "sound/weapons/Gunshot_silenced.ogg"
icon_state = "mecha_mime"
equip_cooldown = 30
equip_cooldown = 15
projectile = /obj/item/projectile/bullet/mime
projectiles = 6
projectiles = 20
projectile_energy_cost = 50
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced/can_attach(obj/mecha/combat/recitence/M as obj)
if(..())
if(istype(M))
return 1
return 0
/obj/item/mecha_parts/mecha_equipment/weapon/ballistic/scattershot
name = "LBX AC 10 \"Scattershot\""
icon_state = "mecha_scatter"
+7 -1
View File
@@ -16,6 +16,7 @@
MAT_METAL=0,
MAT_GLASS=0,
MAT_BANANIUM=0,
MAT_TRANQUILLITE=0,
MAT_DIAMOND=0,
MAT_GOLD=0,
MAT_PLASMA=0,
@@ -41,6 +42,7 @@
"Gygax",
"Durand",
"H.O.N.K",
"Recitence",
"Phazon",
"Exosuit Equipment",
"Cyborg Upgrade Modules",
@@ -350,7 +352,7 @@
</table>
</body>
</html>"}
user << browse(dat, "window=mecha_fabricator;size=1000x430")
user << browse(dat, "window=mecha_fabricator;size=1000x490")
onclose(user, "mecha_fabricator")
return
@@ -468,6 +470,8 @@
type = /obj/item/stack/sheet/mineral/uranium
if(MAT_BANANIUM)
type = /obj/item/stack/sheet/mineral/bananium
if(MAT_TRANQUILLITE)
type = /obj/item/stack/sheet/mineral/tranquillite
else
return 0
var/result = 0
@@ -521,6 +525,8 @@
material = MAT_GLASS
if(/obj/item/stack/sheet/mineral/bananium)
material = MAT_BANANIUM
if(/obj/item/stack/sheet/mineral/tranquillite)
material = MAT_TRANQUILLITE
if(/obj/item/stack/sheet/mineral/uranium)
material = MAT_URANIUM
else
@@ -855,6 +855,83 @@
feedback_inc("mecha_honker_created",1)
return
/datum/construction/mecha/recitence_chassis
steps = list(list("key"=/obj/item/mecha_parts/part/recitence_torso),//1
list("key"=/obj/item/mecha_parts/part/recitence_left_arm),//2
list("key"=/obj/item/mecha_parts/part/recitence_right_arm),//3
list("key"=/obj/item/mecha_parts/part/recitence_left_leg),//4
list("key"=/obj/item/mecha_parts/part/recitence_right_leg),//5
list("key"=/obj/item/mecha_parts/part/recitence_head)
)
/datum/construction/mecha/recitence_chassis/action(atom/used_atom,mob/user as mob)
return check_all_steps(used_atom,user)
/datum/construction/mecha/recitence_chassis/custom_action(step, atom/used_atom, mob/user)
user.visible_message("[user] has connected [used_atom] to the [holder].", "You connect [used_atom] to the [holder]")
holder.overlays += used_atom.icon_state + "+o"
qdel(used_atom)
return 1
/datum/construction/mecha/recitence_chassis/spawn_result()
var/obj/item/mecha_parts/chassis/const_holder = holder
const_holder.construct = new /datum/construction/mecha/recitence(const_holder)
const_holder.density = 1
qdel(src)
return
/datum/construction/mecha/recitence
result = "/obj/mecha/combat/recitence"
steps = list(list("key"=/obj/effect/dummy/mecha_emote_step),//1
list("key"=/obj/item/clothing/suit/suspenders),//2
list("key"=/obj/effect/dummy/mecha_emote_step),//3
list("key"=/obj/item/clothing/mask/gas/mime),//4
list("key"=/obj/effect/dummy/mecha_emote_step),//5
list("key"=/obj/item/clothing/head/beret),//6
list("key"=/obj/item/weapon/circuitboard/mecha/recitence/targeting),//7
list("key"=/obj/item/weapon/circuitboard/mecha/recitence/peripherals),//8
list("key"=/obj/item/weapon/circuitboard/mecha/recitence/main),//9
)
/datum/construction/mecha/recitence/action(atom/used_atom,mob/user)
return check_step(used_atom,user)
/datum/construction/mecha/recitence/custom_action(step, atom/used_atom, mob/user)
if(!..())
return 0
if(istype(used_atom, /obj/effect/dummy/mecha_emote_step))
var/obj/effect/dummy/mecha_emote_step/E = used_atom
holder.visible_message("<span class='game say'><span class='name'>[holder]</span> likewise [E.emote]</span>")
qdel(used_atom)
//TODO: better messages.
switch(step)
if(9)
user.visible_message("[user] installs the central control module into the [holder].", "<span class='notice'>You install the central control module into the [holder].</span>")
qdel(used_atom)
if(8)
user.visible_message("[user] installs the peripherals control module into the [holder].", "<span class='notice'>You install the peripherals control module into the [holder].</span>")
qdel(used_atom)
if(7)
user.visible_message("[user] installs the weapon control module into the [holder].", "<span class='notice'>You install the weapon control module into the [holder].</span>")
qdel(used_atom)
if(6)
user.visible_message("[user] puts beret on the [holder].", "<span class='notice'>You put beret on the [holder].</span>")
qdel(used_atom)
if(4)
user.visible_message("[user] puts mime mask on the [holder].", "<span class='notice'>You put mime mask on the [holder].</span>")
qdel(used_atom)
if(2)
user.visible_message("[user] puts suspenders on the [holder].", "<span class='notice'>You put suspenders on the [holder].</span>")
qdel(used_atom)
return 1
/datum/construction/mecha/recitence/spawn_result()
..()
feedback_inc("mecha_recitence_created",1)
return
/datum/construction/mecha/durand_chassis
steps = list(list("key"=/obj/item/mecha_parts/part/durand_torso),//1
list("key"=/obj/item/mecha_parts/part/durand_left_arm),//2
+129 -66
View File
@@ -223,6 +223,54 @@
icon_state = "honker_r_leg"
////////// Recitence
/obj/item/mecha_parts/chassis/recitence
name = "Recitence Chassis"
/obj/item/mecha_parts/chassis/recitence/New()
..()
construct = new /datum/construction/mecha/recitence_chassis(src)
/obj/effect/dummy/mecha_emote_step
var/emote
/obj/effect/dummy/mecha_emote_step/New(e)
emote = e
/obj/item/mecha_parts/chassis/recitence/hear_message(mob/living/M, msg)
if(!istype(M) || !istype(construct, /datum/construction/mecha/recitence))
return
// is the current step the dummy emote object?
var/list/steps = construct.steps
if(steps[steps.len]["key"] == /obj/effect/dummy/mecha_emote_step)
construct.action(new /obj/effect/dummy/mecha_emote_step(msg), M)
/obj/item/mecha_parts/part/recitence_torso
name = "Recitence Torso"
icon_state = "recitence_harness"
/obj/item/mecha_parts/part/recitence_head
name = "Recitence Head"
icon_state = "recitence_head"
/obj/item/mecha_parts/part/recitence_left_arm
name = "Recitence Left Arm"
icon_state = "recitence_l_arm"
/obj/item/mecha_parts/part/recitence_right_arm
name = "Recitence Right Arm"
icon_state = "recitence_r_arm"
/obj/item/mecha_parts/part/recitence_left_leg
name = "Recitence Left Leg"
icon_state = "recitence_l_leg"
/obj/item/mecha_parts/part/recitence_right_leg
name = "Recitence Right Leg"
icon_state = "recitence_r_leg"
////////// Phazon
/obj/item/mecha_parts/chassis/phazon
@@ -333,93 +381,108 @@
throw_speed = 3
throw_range = 15
ripley
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/mecha/ripley
origin_tech = "programming=3"
ripley/peripherals
name = "Circuit board (Ripley Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/ripley/peripherals
name = "Circuit board (Ripley Peripherals Control module)"
icon_state = "mcontroller"
ripley/main
name = "Circuit board (Ripley Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/ripley/main
name = "Circuit board (Ripley Central Control module)"
icon_state = "mainboard"
gygax
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/mecha/gygax
origin_tech = "programming=4"
gygax/peripherals
name = "Circuit board (Gygax Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/gygax/peripherals
name = "Circuit board (Gygax Peripherals Control module)"
icon_state = "mcontroller"
gygax/targeting
name = "Circuit board (Gygax Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
/obj/item/weapon/circuitboard/mecha/gygax/targeting
name = "Circuit board (Gygax Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
gygax/main
name = "Circuit board (Gygax Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/gygax/main
name = "Circuit board (Gygax Central Control module)"
icon_state = "mainboard"
durand
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/mecha/durand
origin_tech = "programming=4"
durand/peripherals
name = "Circuit board (Durand Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/durand/peripherals
name = "Circuit board (Durand Peripherals Control module)"
icon_state = "mcontroller"
durand/targeting
name = "Circuit board (Durand Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
/obj/item/weapon/circuitboard/mecha/durand/targeting
name = "Circuit board (Durand Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
durand/main
name = "Circuit board (Durand Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/durand/main
name = "Circuit board (Durand Central Control module)"
icon_state = "mainboard"
phazon
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/mecha/phazon
origin_tech = "programming=4"
phazon/peripherals
name = "Circuit board (Phazon Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/phazon/peripherals
name = "Circuit board (Phazon Peripherals Control module)"
icon_state = "mcontroller"
phazon/targeting
name = "Circuit board (Phazon Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
/obj/item/weapon/circuitboard/mecha/phazon/targeting
name = "Circuit board (Phazon Weapon Control and Targeting module)"
icon_state = "mcontroller"
origin_tech = "programming=4;combat=4"
phazon/main
name = "Circuit board (Phazon Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/phazon/main
name = "Circuit board (Phazon Central Control module)"
icon_state = "mainboard"
honker
origin_tech = "programming=4"
/obj/item/weapon/circuitboard/mecha/honker
origin_tech = "programming=4"
honker/peripherals
name = "Circuit board (H.O.N.K Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/honker/peripherals
name = "Circuit board (H.O.N.K Peripherals Control module)"
icon_state = "mcontroller"
honker/targeting
name = "Circuit board (H.O.N.K Weapon Control and Targeting module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/honker/targeting
name = "Circuit board (H.O.N.K Weapon Control and Targeting module)"
icon_state = "mcontroller"
honker/main
name = "Circuit board (H.O.N.K Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/honker/main
name = "Circuit board (H.O.N.K Central Control module)"
icon_state = "mainboard"
odysseus
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/mecha/recitence
origin_tech = "programming=4"
odysseus/peripherals
name = "Circuit board (Odysseus Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/recitence/peripherals
name = "circuit board (Reticience Peripherals Control module)"
icon_state = "mcontroller"
odysseus/main
name = "Circuit board (Odysseus Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/recitence/targeting
name = "circuit board (Reticience Weapon Control and Targeting module)"
icon_state = "mcontroller"
pod
name = "Circuit board (Space Pod Mainboard)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/recitence/main
name = "circuit board (Reticience Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/odysseus
origin_tech = "programming=3"
/obj/item/weapon/circuitboard/mecha/odysseus/peripherals
name = "Circuit board (Odysseus Peripherals Control module)"
icon_state = "mcontroller"
/obj/item/weapon/circuitboard/mecha/odysseus/main
name = "Circuit board (Odysseus Central Control module)"
icon_state = "mainboard"
/obj/item/weapon/circuitboard/mecha/pod
name = "Circuit board (Space Pod Mainboard)"
icon_state = "mainboard"
+1 -5
View File
@@ -114,17 +114,13 @@
icon_state = "mauler-broken"
desc = "The syndicate won't be very happy about this..."
/obj/effect/decal/mecha_wreckage/mime
name = "Mimech wreckage"
icon_state = "mime-broken"
/obj/effect/decal/mecha_wreckage/seraph
name = "Seraph wreckage"
icon_state = "seraph-broken"
/obj/effect/decal/mecha_wreckage/recitence
name = "\improper Recitence wreckage"
icon_state = "recitence-broken"
icon_state = "mime-broken"
/obj/effect/decal/mecha_wreckage/ripley
name = "Ripley wreckage"
@@ -8,6 +8,7 @@ Mineral Sheets
- Gold
- Silver
- Bananium
- Tranqillite
- Enriched Uranium
- Platinum
- Metallic Hydrogen
@@ -62,6 +63,11 @@ var/global/list/datum/stack_recipe/bananium_recipes = list ( \
new/datum/stack_recipe("bananium grenade casing", /obj/item/weapon/grenade/bananade/casing, 4, on_floor = 1), \
)
var/global/list/datum/stack_recipe/mime_recipes = list ( \
new/datum/stack_recipe("silent tile", /obj/item/stack/tile/silent, 1, 4, 20), \
new/datum/stack_recipe("invisible wall", /obj/structure/barricade/mime, 5, one_per_turf = 1, on_floor = 1, time = 50), \
)
/obj/item/stack/sheet/mineral
force = 5.0
throwforce = 5
@@ -169,6 +175,18 @@ var/global/list/datum/stack_recipe/bananium_recipes = list ( \
..()
recipes = bananium_recipes
/obj/item/stack/sheet/mineral/tranquillite
name = "tranquillite"
singular_name = "beret"
icon_state = "sheet-mime"
origin_tech = "materials=4"
sheettype = "mime"
materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT)
/obj/item/stack/sheet/mineral/tranquillite/New(var/loc, var/amount=null)
..()
recipes = mime_recipes
/obj/item/stack/sheet/mineral/enruranium
name = "enriched uranium"
icon_state = "sheet-enruranium"
@@ -116,3 +116,12 @@
/obj/item/stack/tile/noslip/loaded
amount = 20
/obj/item/stack/tile/silent
name = "silent tile"
singular_name = "silent floor tile"
desc = "A tile made out of tranquillite, SHHHHHHHHH!"
icon_state = "tile-silent"
origin_tech = "materials=1"
turf_type = /turf/simulated/floor/silent
mineralType = "tranquillite"
materials = list(MAT_TRANQUILLITE=500)
+101 -101
View File
@@ -17,127 +17,127 @@ obj/structure/door_assembly
New()
update_state()
door_assembly_com
base_icon_state = "com"
base_name = "Command Airlock"
glass_type = "/glass_command"
airlock_type = "/command"
obj/structure/door_assembly/door_assembly_com
base_icon_state = "com"
base_name = "Command Airlock"
glass_type = "/glass_command"
airlock_type = "/command"
door_assembly_sec
base_icon_state = "sec"
base_name = "Security Airlock"
glass_type = "/glass_security"
airlock_type = "/security"
obj/structure/door_assembly/door_assembly_sec
base_icon_state = "sec"
base_name = "Security Airlock"
glass_type = "/glass_security"
airlock_type = "/security"
door_assembly_eng
base_icon_state = "eng"
base_name = "Engineering Airlock"
glass_type = "/glass_engineering"
airlock_type = "/engineering"
obj/structure/door_assembly/door_assembly_eng
base_icon_state = "eng"
base_name = "Engineering Airlock"
glass_type = "/glass_engineering"
airlock_type = "/engineering"
door_assembly_min
base_icon_state = "min"
base_name = "Mining Airlock"
glass_type = "/glass_mining"
airlock_type = "/mining"
obj/structure/door_assembly/door_assembly_min
base_icon_state = "min"
base_name = "Mining Airlock"
glass_type = "/glass_mining"
airlock_type = "/mining"
door_assembly_atmo
base_icon_state = "atmo"
base_name = "Atmospherics Airlock"
glass_type = "/glass_atmos"
airlock_type = "/atmos"
obj/structure/door_assembly/door_assembly_atmo
base_icon_state = "atmo"
base_name = "Atmospherics Airlock"
glass_type = "/glass_atmos"
airlock_type = "/atmos"
door_assembly_research
base_icon_state = "res"
base_name = "Research Airlock"
glass_type = "/glass_research"
airlock_type = "/research"
obj/structure/door_assembly/door_assembly_research
base_icon_state = "res"
base_name = "Research Airlock"
glass_type = "/glass_research"
airlock_type = "/research"
door_assembly_science
base_icon_state = "sci"
base_name = "Science Airlock"
glass_type = "/glass_science"
airlock_type = "/science"
obj/structure/door_assembly/door_assembly_science
base_icon_state = "sci"
base_name = "Science Airlock"
glass_type = "/glass_science"
airlock_type = "/science"
door_assembly_med
base_icon_state = "med"
base_name = "Medical Airlock"
glass_type = "/glass_medical"
airlock_type = "/medical"
obj/structure/door_assembly/door_assembly_med
base_icon_state = "med"
base_name = "Medical Airlock"
glass_type = "/glass_medical"
airlock_type = "/medical"
door_assembly_mai
base_icon_state = "mai"
base_name = "Maintenance Airlock"
airlock_type = "/maintenance"
glass = -1
obj/structure/door_assembly/door_assembly_mai
base_icon_state = "mai"
base_name = "Maintenance Airlock"
airlock_type = "/maintenance"
glass = -1
door_assembly_ext
base_icon_state = "ext"
base_name = "External Airlock"
airlock_type = "/external"
glass = -1
obj/structure/door_assembly/door_assembly_ext
base_icon_state = "ext"
base_name = "External Airlock"
airlock_type = "/external"
glass = -1
door_assembly_fre
base_icon_state = "fre"
base_name = "Freezer Airlock"
airlock_type = "/freezer"
glass = -1
obj/structure/door_assembly/door_assembly_fre
base_icon_state = "fre"
base_name = "Freezer Airlock"
airlock_type = "/freezer"
glass = -1
door_assembly_hatch
base_icon_state = "hatch"
base_name = "Airtight Hatch"
airlock_type = "/hatch"
glass = -1
obj/structure/door_assembly/door_assembly_hatch
base_icon_state = "hatch"
base_name = "Airtight Hatch"
airlock_type = "/hatch"
glass = -1
door_assembly_mhatch
base_icon_state = "mhatch"
base_name = "Maintenance Hatch"
airlock_type = "/maintenance_hatch"
glass = -1
obj/structure/door_assembly/door_assembly_mhatch
base_icon_state = "mhatch"
base_name = "Maintenance Hatch"
airlock_type = "/maintenance_hatch"
glass = -1
door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly
base_icon_state = "highsec"
base_name = "High Security Airlock"
airlock_type = "/highsecurity"
glass = -1
obj/structure/door_assembly/door_assembly_highsecurity // Borrowing this until WJohnston makes sprites for the assembly
base_icon_state = "highsec"
base_name = "High Security Airlock"
airlock_type = "/highsecurity"
glass = -1
door_assembly_shuttle
base_icon_state = "shuttle"
base_name = "shuttle airlock"
airlock_type = "/shuttle"
glass = -1
obj/structure/door_assembly/door_assembly_shuttle
base_icon_state = "shuttle"
base_name = "shuttle airlock"
airlock_type = "/shuttle"
glass = -1
multi_tile
icon = 'icons/obj/doors/door_assembly2x1.dmi'
dir = EAST
var/width = 1
obj/structure/door_assembly/multi_tile
icon = 'icons/obj/doors/door_assembly2x1.dmi'
dir = EAST
var/width = 1
/*Temporary until we get sprites.
glass_type = "/multi_tile/glass"
airlock_type = "/multi_tile/maint"
glass = 1*/
base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1.
airlock_type = "/multi_tile/glass"
glass = -1 //To prevent bugs in deconstruction process.
glass_type = "/multi_tile/glass"
airlock_type = "/multi_tile/maint"
glass = 1*/
base_icon_state = "g" //Remember to delete this line when reverting "glass" var to 1.
airlock_type = "/multi_tile/glass"
glass = -1 //To prevent bugs in deconstruction process.
New()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
else
bound_width = world.icon_size
bound_height = width * world.icon_size
update_state()
obj/structure/door_assembly/multi_tile/New()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
else
bound_width = world.icon_size
bound_height = width * world.icon_size
update_state()
Move()
. = ..()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
else
bound_width = world.icon_size
bound_height = width * world.icon_size
obj/structure/door_assembly/multi_tile/Move()
. = ..()
if(dir in list(EAST, WEST))
bound_width = width * world.icon_size
bound_height = world.icon_size
else
bound_width = world.icon_size
bound_height = width * world.icon_size
@@ -65,4 +65,11 @@
slowdown = -0.3
/turf/simulated/floor/noslip/MakeSlippery()
return
return
/turf/simulated/floor/silent
name = "silent floor"
icon_state = "silent"
floor_tile = /obj/item/stack/tile/silent
shoe_running_volume = 0
shoe_walking_volume = 0
+2
View File
@@ -30,6 +30,8 @@
var/image/obscured //camerachunks
var/list/footstep_sounds = list()
var/shoe_running_volume = 50
var/shoe_walking_volume = 20
/turf/New()
..()
+21
View File
@@ -351,6 +351,8 @@ BLIND // can't see anything
slot_flags = SLOT_FEET
var/silence_steps = 0
var/shoe_sound_footstep = 1
var/shoe_sound = null
permeability_coefficient = 0.50
slowdown = SHOES_SLOWDOWN
@@ -396,6 +398,25 @@ BLIND // can't see anything
else
..()
/obj/item/clothing/shoes/proc/step_action(var/mob/living/carbon/human/H) //squeek squeek
if(shoe_sound)
var/turf/T = get_turf(H)
if(!istype(H) || !istype(T))
return 0
if(H.m_intent == "run")
if(shoe_sound_footstep >= 2)
if(T.shoe_running_volume)
playsound(src, shoe_sound, T.shoe_running_volume, 1)
shoe_sound_footstep = 0
else
shoe_sound_footstep++
else if(T.shoe_walking_volume)
playsound(src, shoe_sound, T.shoe_walking_volume, 1)
return 1
/obj/item/proc/negates_gravity()
return 0
+3 -26
View File
@@ -1,5 +1,3 @@
/obj/item/clothing/shoes/proc/step_action(var/mob/living/carbon/human/H) //squeek squeek
/obj/item/clothing/shoes/syndigaloshes
desc = "A pair of brown shoes. They seem to have extra grip."
name = "brown shoes"
@@ -77,18 +75,7 @@
var/footstep = 1 //used for squeeks whilst walking
species_restricted = null
silence_steps = 1
/obj/item/clothing/shoes/clown_shoes/step_action(var/mob/living/carbon/human/H)
if(!istype(H)) return 0
if(H.m_intent == "run")
if(footstep >= 2)
playsound(src, "clownstep", 50, 1)
footstep = 0
else
footstep++
else
playsound(src, "clownstep", 20, 1)
shoe_sound = "clownstep"
/obj/item/clothing/shoes/jackboots
name = "jackboots"
@@ -101,18 +88,7 @@
put_on_delay = 50
var/footstep = 1
silence_steps = 1
/obj/item/clothing/shoes/jackboots/step_action(var/mob/living/carbon/human/H)
if(!istype(H)) return 0
if(H.m_intent == "run")
if(footstep >= 2)
playsound(src, "jackboot", 50, 1)
footstep = 0
else
footstep++
else
playsound(src, "jackboot", 20, 1)
shoe_sound = "jackboot"
/obj/item/clothing/shoes/jackboots/jacksandals
name = "jacksandals"
@@ -190,6 +166,7 @@
/obj/item/clothing/shoes/attackby(obj/item/I, mob/user, params)
if(istype(I, /obj/item/shoe_silencer))
silence_steps = 1
shoe_sound = null
user.unEquip(I)
qdel(I)
else . = ..()
+6
View File
@@ -64,6 +64,12 @@
materials = list(MAT_BANANIUM = 400)
credits = 600 //makes the clown cri
/obj/item/weapon/coin/mime
cmineral = "tranquillite"
icon_state = "coin_tranquillite_heads"
materials = list(MAT_TRANQUILLITE = 400)
credits = 600 //makes the mime cri
/obj/item/weapon/coin/adamantine
cmineral = "adamantine"
icon_state = "coin_adamantine_heads"
+2 -2
View File
@@ -19,7 +19,7 @@
var/ore_pickup_rate = 15
var/sheet_per_ore = 1
var/point_upgrade = 1
var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60))
var/list/ore_values = list(("sand" = 1), ("iron" = 1), ("plasma" = 15), ("silver" = 16), ("gold" = 18), ("uranium" = 30), ("diamond" = 50), ("bananium" = 60), ("tranquillite" = 60))
var/list/supply_consoles = list("Science", "Robotics", "Research Director's Desk", "Mechanic", "Engineering" = list("metal", "glass", "plasma"), "Chief Engineer's Desk" = list("metal", "glass", "plasma"), "Atmospherics" = list("metal", "glass", "plasma"), "Bar" = list("uranium", "plasma"))
/obj/machinery/mineral/ore_redemption/New()
@@ -721,7 +721,7 @@
speak_emote = list("states")
wanted_objects = list(/obj/item/weapon/ore/diamond, /obj/item/weapon/ore/gold, /obj/item/weapon/ore/silver,
/obj/item/weapon/ore/plasma, /obj/item/weapon/ore/uranium, /obj/item/weapon/ore/iron,
/obj/item/weapon/ore/bananium, /obj/item/weapon/ore/glass)
/obj/item/weapon/ore/bananium, /obj/item/weapon/ore/tranquillite, /obj/item/weapon/ore/glass)
/mob/living/simple_animal/hostile/mining_drone/attackby(obj/item/I as obj, mob/user as mob, params)
if(istype(I, /obj/item/weapon/weldingtool))
@@ -133,7 +133,7 @@
/obj/machinery/mineral/stacking_machine/laborstacker
var/points = 0 //The unclaimed value of ore stacked. Value for each ore loosely relative to its rarity.
var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50))
var/list/ore_values = list(("glass" = 1), ("metal" = 2), ("solid plasma" = 20), ("plasteel" = 23), ("reinforced glass" = 4), ("gold" = 20), ("silver" = 20), ("uranium" = 20), ("diamond" = 25), ("bananium" = 50), ("tranquillite" = 50))
/obj/machinery/mineral/stacking_machine/laborstacker/proc/get_ore_values()
var/dat = "<table border='0' width='200'>"
+55 -22
View File
@@ -22,7 +22,7 @@
var/dat = "<b>Smelter control console</b><br><br>"
//iron
if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_adamantine)
if(machine.ore_iron || machine.ore_glass || machine.ore_plasma || machine.ore_uranium || machine.ore_gold || machine.ore_silver || machine.ore_diamond || machine.ore_clown || machine.ore_mime || machine.ore_adamantine)
if(machine.ore_iron)
if (machine.selected_iron==1)
dat += text("<A href='?src=\ref[src];sel_iron=no'><font color='green'>Smelting</font></A> ")
@@ -102,6 +102,16 @@
else
machine.selected_clown = 0
//tranquillite
if(machine.ore_mime)
if (machine.selected_mime==1)
dat += text("<A href='?src=\ref[src];sel_mime=no'><font color='green'>Smelting</font></A> ")
else
dat += text("<A href='?src=\ref[src];sel_mime=yes'><font color='red'>Not smelting</font></A> ")
dat += text("Tranquillite: [machine.ore_mime]<br>")
else
machine.selected_mime = 0
//On or off
dat += text("Machine is currently ")
@@ -160,6 +170,11 @@
machine.selected_clown = 1
else
machine.selected_clown = 0
if(href_list["sel_mime"])
if (href_list["sel_mime"] == "yes")
machine.selected_mime = 1
else
machine.selected_mime = 0
if(href_list["set_on"])
if (href_list["set_on"] == "on")
machine.on = 1
@@ -178,15 +193,16 @@
density = 1
anchored = 1
var/obj/machinery/mineral/CONSOLE = null
var/ore_gold = 0;
var/ore_silver = 0;
var/ore_diamond = 0;
var/ore_glass = 0;
var/ore_plasma = 0;
var/ore_uranium = 0;
var/ore_iron = 0;
var/ore_clown = 0;
var/ore_adamantine = 0;
var/ore_gold = 0
var/ore_silver = 0
var/ore_diamond = 0
var/ore_glass = 0
var/ore_plasma = 0
var/ore_uranium = 0
var/ore_iron = 0
var/ore_clown = 0
var/ore_mime = 0
var/ore_adamantine = 0
var/selected_gold = 0
var/selected_silver = 0
var/selected_diamond = 0
@@ -195,20 +211,21 @@
var/selected_uranium = 0
var/selected_iron = 0
var/selected_clown = 0
var/selected_mime = 0
var/on = 0 //0 = off, 1 =... oh you know!
/obj/machinery/mineral/processing_unit/process()
var/i
for (i = 0; i < 10; i++)
if (on)
if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_glass > 0)
ore_glass--;
generate_mineral(/obj/item/stack/sheet/glass)
else
on = 0
continue
if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0)
if (selected_glass == 1 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
if (ore_glass > 0 && ore_iron > 0)
ore_glass--;
ore_iron--;
@@ -216,49 +233,49 @@
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 1 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_gold > 0)
ore_gold--;
generate_mineral(/obj/item/stack/sheet/mineral/gold)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_silver > 0)
ore_silver--;
generate_mineral(/obj/item/stack/sheet/mineral/silver)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_diamond > 0)
ore_diamond--;
generate_mineral(/obj/item/stack/sheet/mineral/diamond)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_plasma > 0)
ore_plasma--;
generate_mineral(/obj/item/stack/sheet/mineral/plasma)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_uranium > 0)
ore_uranium--;
generate_mineral(/obj/item/stack/sheet/mineral/uranium)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
if (ore_iron > 0)
ore_iron--;
generate_mineral(/obj/item/stack/sheet/metal)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 1 && selected_clown == 0 && selected_mime == 0)
if (ore_iron > 0 && ore_plasma > 0)
ore_iron--;
ore_plasma--;
@@ -266,16 +283,23 @@
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 1 && selected_mime == 0)
if (ore_clown > 0)
ore_clown--;
generate_mineral(/obj/item/stack/sheet/mineral/bananium)
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 0 && selected_plasma == 0 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 1)
if (ore_mime > 0)
ore_mime--;
generate_mineral(/obj/item/stack/sheet/mineral/tranquillite)
else
on = 0
continue
//THESE TWO ARE CODED FOR URIST TO USE WHEN HE GETS AROUND TO IT.
//They were coded on 18 Feb 2012. If you're reading this in 2015, then firstly congratulations on the world not ending on 21 Dec 2012 and secondly, Urist is apparently VERY lazy. ~Errorage
/*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0)
/*if (selected_glass == 0 && selected_gold == 0 && selected_silver == 0 && selected_diamond == 1 && selected_plasma == 0 && selected_uranium == 1 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_uranium >= 2 && ore_diamond >= 1)
ore_uranium -= 2
ore_diamond -= 1
@@ -283,7 +307,7 @@
else
on = 0
continue
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0)
if (selected_glass == 0 && selected_gold == 0 && selected_silver == 1 && selected_diamond == 0 && selected_plasma == 1 && selected_uranium == 0 && selected_iron == 0 && selected_clown == 0 && selected_mime == 0)
if (ore_silver >= 1 && ore_plasma >= 3)
ore_silver -= 1
ore_plasma -= 3
@@ -324,6 +348,9 @@
if (selected_clown == 1)
if (ore_clown <= 0)
b = 0
if (selected_mime == 1)
if (ore_mime <= 0)
b = 0
if (b) //if they are, deduct one from each, produce slag and shut the machine off
if (selected_gold == 1)
@@ -340,6 +367,8 @@
ore_iron--
if (selected_clown == 1)
ore_clown--
if (selected_mime == 1)
ore_mime--
generate_mineral(/obj/item/weapon/ore/slag)
on = 0
else
@@ -387,6 +416,10 @@
ore_clown++
O.loc = null
continue
if (istype(O,/obj/item/weapon/ore/tranquillite))
ore_mime++
O.loc = null
continue
unload_mineral(O)
/obj/machinery/mineral/processing_unit/proc/generate_mineral(var/P)
+12 -1
View File
@@ -133,6 +133,8 @@ var/global/list/rockTurfEdgeCache
M = new/turf/simulated/mineral/gibtonite(src)
if("Bananium")
M = new/turf/simulated/mineral/clown(src)
if("Tranquillite")
M = new/turf/simulated/mineral/mime(src)
if("BScrystal")
M = new/turf/simulated/mineral/bscrystal(src)
if(M)
@@ -156,7 +158,7 @@ var/global/list/rockTurfEdgeCache
mineralSpawnChanceList = list(
"Uranium" = 35, "Diamond" = 2,
"Gold" = 5, "Silver" = 5, "Plasma" = 25,
"Iron" = 30, "Clown" = 15, "BScrystal" = 10)
"Iron" = 30, "Bananium" = 15, "Tranquillite" = 15, "BScrystal" = 10)
/turf/simulated/mineral/random/high_chance/New()
icon_state = "rock"
@@ -239,6 +241,15 @@ var/global/list/rockTurfEdgeCache
spread = 0
hidden = 0
/turf/simulated/mineral/mime
name = "tranquillite deposit"
icon_state = "rock_Mime"
mineralType = /obj/item/weapon/ore/tranquillite
mineralAmt = 3
spreadChance = 0
spread = 0
hidden = 0
/turf/simulated/mineral/bscrystal
name = "bluespace crystal deposit"
icon_state = "rock_BScrystal"
+28 -10
View File
@@ -14,6 +14,7 @@
var/amt_plasma = 0
var/amt_uranium = 0
var/amt_clown = 0
var/amt_mime = 0
var/amt_adamantine = 0
var/amt_mythril = 0
var/newCoins = 0 //how many coins the machine made in it's last load
@@ -46,6 +47,9 @@
if (istype(O, /obj/item/stack/sheet/mineral/bananium))
amt_clown += 100 * O.amount
O.loc = null
if (istype(O, /obj/item/stack/sheet/mineral/tranquillite))
amt_mime += 100 * O.amount
O.loc = null
return
@@ -78,7 +82,7 @@
dat += text("chosen")
else
dat += text("<A href='?src=\ref[src];choose=plasma'>Choose</A>")
dat += text("<br><font color='#008800'><b>uranium inserted: </b>[amt_uranium]</font> ")
dat += text("<br><font color='#008800'><b>Uranium inserted: </b>[amt_uranium]</font> ")
if (chosen == "uranium")
dat += text("chosen")
else
@@ -89,6 +93,12 @@
dat += text("chosen")
else
dat += text("<A href='?src=\ref[src];choose=clown'>Choose</A>")
if(amt_mime > 0)
dat += text("<br><font color='#666666'><b>Tranquillite inserted: </b>[amt_mime]</font> ")
if (chosen == "mime")
dat += text("chosen")
else
dat += text("<A href='?src=\ref[src];choose=mime'>Choose</A>")
dat += text("<br><font color='#888888'><b>Adamantine inserted: </b>[amt_adamantine]</font> ")//I don't even know these color codes, so fuck it.
if (chosen == "adamantine")
dat += text("chosen")
@@ -132,7 +142,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("gold")
while(amt_gold > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/gold)
@@ -140,7 +150,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("silver")
while(amt_silver > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/silver)
@@ -148,7 +158,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("diamond")
while(amt_diamond > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/diamond)
@@ -156,7 +166,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("plasma")
while(amt_plasma > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/plasma)
@@ -164,7 +174,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("uranium")
while(amt_uranium > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/uranium)
@@ -180,7 +190,15 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("mime")
while(amt_mime > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/mime)
amt_mime -= 20
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5)
if("adamantine")
while(amt_adamantine > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/adamantine)
@@ -188,7 +206,7 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
if("mythril")
while(amt_adamantine > 0 && coinsToProduce > 0)
create_coins(/obj/item/weapon/coin/mythril)
@@ -196,9 +214,9 @@
coinsToProduce--
newCoins++
src.updateUsrDialog()
sleep(5);
sleep(5)
icon_state = "coinpress0"
processing = 0;
processing = 0
coinsToProduce = temp_coins
src.updateUsrDialog()
return
+15 -8
View File
@@ -17,25 +17,28 @@
var/amt_plasma = 0
var/amt_uranium = 0
var/amt_clown = 0
var/amt_mime = 0
var/amt_adamantine = 0
for (var/obj/item/weapon/coin/C in contents)
if (istype(C,/obj/item/weapon/coin/diamond))
amt_diamond++;
amt_diamond++
if (istype(C,/obj/item/weapon/coin/plasma))
amt_plasma++;
amt_plasma++
if (istype(C,/obj/item/weapon/coin/iron))
amt_iron++;
amt_iron++
if (istype(C,/obj/item/weapon/coin/silver))
amt_silver++;
amt_silver++
if (istype(C,/obj/item/weapon/coin/gold))
amt_gold++;
amt_gold++
if (istype(C,/obj/item/weapon/coin/uranium))
amt_uranium++;
amt_uranium++
if (istype(C,/obj/item/weapon/coin/clown))
amt_clown++;
amt_clown++
if (istype(C,/obj/item/weapon/coin/mime))
amt_mime++
if (istype(C,/obj/item/weapon/coin/adamantine))
amt_adamantine++;
amt_adamantine++
var/dat = text("<b>The contents of the moneybag reveal...</b><br>")
if (amt_gold)
@@ -52,6 +55,8 @@
dat += text("Uranium coins: [amt_uranium] <A href='?src=\ref[src];remove=uranium'>Remove one</A><br>")
if (amt_clown)
dat += text("Bananium coins: [amt_clown] <A href='?src=\ref[src];remove=clown'>Remove one</A><br>")
if (amt_mime)
dat += text("Tranquillite coins: [amt_mime] <A href='?src=\ref[src];remove=mime'>Remove one</A><br>")
if (amt_adamantine)
dat += text("Adamantine coins: [amt_adamantine] <A href='?src=\ref[src];remove=adamantine'>Remove one</A><br>")
user << browse("[dat]", "window=moneybag")
@@ -93,6 +98,8 @@
COIN = locate(/obj/item/weapon/coin/uranium,src.contents)
if("clown")
COIN = locate(/obj/item/weapon/coin/clown,src.contents)
if("mime")
COIN = locate(/obj/item/weapon/coin/mime,src.contents)
if("adamantine")
COIN = locate(/obj/item/weapon/coin/adamantine,src.contents)
if(!COIN)
+8
View File
@@ -130,6 +130,14 @@
refined_type = /obj/item/stack/sheet/mineral/bananium
materials = list(MAT_BANANIUM=MINERAL_MATERIAL_AMOUNT)
/obj/item/weapon/ore/tranquillite
name = "tranquillite ore"
icon_state = "Mime ore"
origin_tech = "materials=4"
points = 60
refined_type = /obj/item/stack/sheet/mineral/tranquillite
materials = list(MAT_TRANQUILLITE=MINERAL_MATERIAL_AMOUNT)
/obj/item/weapon/ore/slag
name = "slag"
desc = "Completely useless"
+13 -8
View File
@@ -31,25 +31,28 @@
var/amt_plasma = 0
var/amt_uranium = 0
var/amt_clown = 0
var/amt_mime = 0
var/amt_bluespace = 0
for (var/obj/item/weapon/ore/C in contents)
if (istype(C,/obj/item/weapon/ore/diamond))
amt_diamond++;
amt_diamond++
if (istype(C,/obj/item/weapon/ore/glass))
amt_glass++;
amt_glass++
if (istype(C,/obj/item/weapon/ore/plasma))
amt_plasma++;
amt_plasma++
if (istype(C,/obj/item/weapon/ore/iron))
amt_iron++;
amt_iron++
if (istype(C,/obj/item/weapon/ore/silver))
amt_silver++;
amt_silver++
if (istype(C,/obj/item/weapon/ore/gold))
amt_gold++;
amt_gold++
if (istype(C,/obj/item/weapon/ore/uranium))
amt_uranium++;
amt_uranium++
if (istype(C,/obj/item/weapon/ore/bananium))
amt_clown++;
amt_clown++
if (istype(C,/obj/item/weapon/ore/tranquillite))
amt_mime++
if (istype(C,/obj/item/weapon/ore/bluespace_crystal))
amt_bluespace++
@@ -70,6 +73,8 @@
dat += text("Uranium ore: [amt_uranium]<br>")
if (amt_clown)
dat += text("Bananium ore: [amt_clown]<br>")
if (amt_mime)
dat += text("Tranquillite ore: [amt_mime]<br>")
if (amt_bluespace)
dat += text("Bluespace crystals: [amt_bluespace]<br>")
+15 -7
View File
@@ -160,15 +160,23 @@
/obj/item/projectile/bullet/mime
damage = 20
damage = 0
stun = 5
weaken = 5
slur = 20
stutter = 20
/obj/item/projectile/bullet/mime/on_hit(var/atom/target, var/blocked = 0)
if(istype(target, /mob/living/carbon))
var/mob/living/carbon/M = target
M.silent = max(M.silent, 10)
..(target, blocked)
if(istype(target, /mob/living/carbon))
var/mob/living/carbon/M = target
M.silent = max(M.silent, 10)
else if(istype(target, /obj/mecha/combat/honker))
var/obj/mecha/chassis = target
chassis.occupant_message("A mimetech anti-honk bullet has hit \the [chassis]!")
chassis.use_power(chassis.get_charge() / 2)
for(var/obj/item/mecha_parts/mecha_equipment/weapon/honker in chassis.equipment)
honker.set_ready_state(0)
/obj/item/projectile/bullet/dart
name = "dart"
@@ -819,6 +819,7 @@
/obj/item/stack/sheet/mineral/plasma = list("plasma" = 20),
/obj/item/stack/sheet/mineral/uranium = list("uranium" = 20),
/obj/item/stack/sheet/mineral/bananium = list("banana" = 20),
/obj/item/stack/sheet/mineral/tranquillite = list("nothing" = 20),
/obj/item/stack/sheet/mineral/silver = list("silver" = 20),
/obj/item/stack/sheet/mineral/gold = list("gold" = 20),
/obj/item/weapon/grown/novaflower = list("capsaicin" = 0),
+1
View File
@@ -17,6 +17,7 @@ The currently supporting non-reagent materials:
- MAT_URANIUM (/obj/item/stack/uranium).
- MAT_DIAMOND (/obj/item/stack/diamond).
- MAT_BANANIUM (/obj/item/stack/bananium).
- MAT_TRANQUILLITE (/obj/item/stack/tranquillite).
(Insert new ones here)
Don't add new keyword/IDs if they are made from an existing one (such as rods which are made from metal). Only add raw materials.
@@ -166,3 +166,33 @@
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/honker/targeting
category = list("Exosuit Modules")
/datum/design/recitence_main
name = "Exosuit Module (\"Recitence\" Central Control module)"
desc = "Allows for the construction of a \"Recitence\" Central Control module."
id = "recitence_main"
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/recitence/main
category = list("Exosuit Modules")
/datum/design/recitence_peri
name = "Exosuit Module (\"Recitence\" Peripherals Control module)"
desc = "Allows for the construction of a \"Recitence\" Peripheral Control module."
id = "recitence_peri"
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/recitence/peripherals
category = list("Exosuit Modules")
/datum/design/recitence_targ
name = "Exosuit Module (\"Recitence\" Weapons & Targeting Control module)"
desc = "Allows for the construction of a \"Recitence\" Weapons & Targeting Control module."
id = "recitence_targ"
req_tech = list("programming" = 3)
build_type = IMPRINTER
materials = list(MAT_GLASS = 1000, "sacid" = 20)
build_path = /obj/item/weapon/circuitboard/mecha/recitence/targeting
category = list("Exosuit Modules")
@@ -459,6 +459,70 @@
construction_time = 200
category = list("H.O.N.K")
//Recitence
/datum/design/recitence_chassis
name = "Exosuit Chassis (\"Recitence\")"
id = "recitence_chassis"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/chassis/recitence
materials = list(MAT_METAL=20000)
construction_time = 100
category = list("Recitence")
/datum/design/recitence_torso
name = "Exosuit Torso (\"Recitence\")"
id = "recitence_torso"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/recitence_torso
materials = list(MAT_METAL=20000,MAT_GLASS=10000,MAT_TRANQUILLITE=10000)
construction_time = 300
category = list("Recitence")
/datum/design/recitence_head
name = "Exosuit Head (\"Recitence\")"
id = "recitence_head"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/recitence_head
materials = list(MAT_METAL=10000,MAT_GLASS=5000,MAT_TRANQUILLITE=5000)
construction_time = 200
category = list("Recitence")
/datum/design/recitence_left_arm
name = "Exosuit Left Arm (\"Recitence\")"
id = "recitence_left_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/recitence_left_arm
materials = list(MAT_METAL=15000,MAT_TRANQUILLITE=5000)
construction_time = 200
category = list("Recitence")
/datum/design/recitence_right_arm
name = "Exosuit Right Arm (\"Recitence\")"
id = "recitence_right_arm"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/recitence_right_arm
materials = list(MAT_METAL=15000,MAT_TRANQUILLITE=5000)
construction_time = 200
category = list("Recitence")
/datum/design/recitence_left_leg
name = "Exosuit Left Leg (\"Recitence\")"
id = "recitence_left_leg"
build_type = MECHFAB
build_path =/obj/item/mecha_parts/part/recitence_left_leg
materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=5000)
construction_time = 200
category = list("Recitence")
/datum/design/recitence_right_leg
name = "Exosuit Right Leg (\"Recitence\")"
id = "recitence_right_leg"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/part/recitence_right_leg
materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=5000)
construction_time = 200
category = list("Recitence")
//Phazon
/datum/design/phazon_chassis
name = "Exosuit Chassis (\"Phazon\")"
@@ -641,6 +705,25 @@
construction_time = 300
category = list("Exosuit Equipment")
/datum/design/mech_silentgun
name = "S.H.H. \"Quietus\" Carbine"
id = "mech_silentgun"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/weapon/ballistic/carbine/silenced
materials = list(MAT_METAL=20000,MAT_TRANQUILLITE=10000)
construction_time = 500
category = list("Exosuit Equipment")
/datum/design/mech_mimercd
name = "Exosuit Module (Mime RCD Module)"
desc = "An exosuit-mounted Mime Rapid Construction Device."
id = "mech_mrcd"
build_type = MECHFAB
build_path = /obj/item/mecha_parts/mecha_equipment/tool/mimercd
materials = list(MAT_METAL=30000,MAT_TRANQUILLITE=10000)
construction_time = 700
category = list("Exosuit Equipment")
// Exosuit Modules
/datum/design/mech_diamond_drill
name = "Exosuit Module (Diamond Mining Drill)"
+13
View File
@@ -90,6 +90,8 @@ proc/CallMaterialName(ID)
return_name = "Diamond"
if("clown")
return_name = "Bananium"
if("mime")
return_name = "Tranquillite"
else
for(var/R in subtypesof(/datum/reagent))
temp_reagent = null
@@ -535,6 +537,8 @@ proc/CallMaterialName(ID)
MAT = MAT_DIAMOND
if("clown")
MAT = MAT_BANANIUM
if("mime")
MAT = "Tranquillite"
linked_lathe.materials.retrieve_sheets(desired_num_sheets, MAT)
else if(href_list["imprinter_ejectsheet"] && linked_imprinter) //Causes the protolathe to eject a sheet of material
@@ -1011,6 +1015,15 @@ proc/CallMaterialName(ID)
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=5'>5x</A> "
if(bananium_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=clown;lathe_ejectsheet_amt=50'>All</A>"
dat += "</div>"
//Tranquillite
var/tranquillite_amount = linked_lathe.materials.amount(MAT_TRANQUILLITE)
dat += "* [tranquillite_amount] of Tranquillite, [round(tranquillite_amount / MINERAL_MATERIAL_AMOUNT,0.1)] sheets: "
if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT)
dat += "<A href='?src=\ref[src];lathe_ejectsheet=mime;lathe_ejectsheet_amt=1'>Eject</A> "
dat += "<A href='?src=\ref[src];lathe_ejectsheet=mime;lathe_ejectsheet_amt=custom'>C</A> "
if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT*5) dat += "<A href='?src=\ref[src];lathe_ejectsheet=mime;lathe_ejectsheet_amt=5'>5x</A> "
if(tranquillite_amount >= MINERAL_MATERIAL_AMOUNT) dat += "<A href='?src=\ref[src];lathe_ejectsheet=mime;lathe_ejectsheet_amt=50'>All</A>"
dat += "</div>"
if(3.3)
dat += "<A href='?src=\ref[src];menu=1.0'>Main Menu</A>"