[M] is hit by \a [src] in the [parse_zone(def_zone)]!") //X has fired Y is now given by the guns so you cant tell who shot you if you could not see the shooter
+ add_logs(firer, M, "shot", object="[src]", addition=reagent_note)
+
+
+ spawn(0)
+ if(A)
+ // We get the location before running A.bullet_act, incase the proc deletes A and makes it null
+ var/turf/new_loc = null
+ if(istype(A, /turf))
+ new_loc = A
+ else
+ new_loc = A.loc
+
+ var/permutation = A.bullet_act(src, def_zone) // searches for return value, could be deleted after run so check A isn't null
+
+ if(permutation == -1 || (forcedodge && !istype(A, /turf)))// the bullet passes through a dense object!
+ bumped = 0 // reset bumped variable!
+ loc = new_loc
+ permutated.Add(A)
+ return 0
+
+ density = 0
+ invisibility = 101
+ delete()
+ return 0
+ return 1
+
+
+ CanPass(atom/movable/mover, turf/target, height=0, air_group=0)
+ if(air_group || (height==0)) return 1
+
+ if(istype(mover, /obj/item/projectile))
+ return prob(95)
+ else
+ return 1
+
+
+ process()
+ if(kill_count < 1)
+ delete()
+ return
+ kill_count--
+ spawn while(src && src.loc)
+ if((!( current ) || loc == current))
+ current = locate(min(max(x + xo, 1), world.maxx), min(max(y + yo, 1), world.maxy), z)
+ if((x == 1 || x == world.maxx || y == 1 || y == world.maxy))
+ delete()
+ return
+ step_towards(src, current)
+ sleep(1)
+ if(!bumped && ((original && original.layer>=2.75) || ismob(original)))
+ if(loc == get_turf(original))
+ if(!(original in permutated))
+ Bump(original)
+ sleep(1)
+ Range()
+ return
+
+/obj/item/projectile/proc/Range()
return
\ No newline at end of file
diff --git a/code/modules/projectiles/projectile/magic.dm b/code/modules/projectiles/projectile/magic.dm
index c32f6bba467..8e61f71ff02 100644
--- a/code/modules/projectiles/projectile/magic.dm
+++ b/code/modules/projectiles/projectile/magic.dm
@@ -165,23 +165,28 @@ proc/wabbajack(mob/living/M)
else new_mob = new /mob/living/carbon/alien/larva(M.loc)
new_mob.universal_speak = 1*/
if("animal")
- var/animal = pick("parrot","corgi","crab","pug","cat","carp","bear","mushroom","tomato","mouse","chicken","cow","lizard","chick")
- switch(animal)
- if("parrot") new_mob = new /mob/living/simple_animal/parrot(M.loc)
- if("corgi") new_mob = new /mob/living/simple_animal/corgi(M.loc)
- if("crab") new_mob = new /mob/living/simple_animal/crab(M.loc)
- if("pug") new_mob = new /mob/living/simple_animal/pug(M.loc)
- if("cat") new_mob = new /mob/living/simple_animal/cat(M.loc)
- if("carp") new_mob = new /mob/living/simple_animal/hostile/carp(M.loc)
- if("bear") new_mob = new /mob/living/simple_animal/hostile/bear(M.loc)
- if("mushroom") new_mob = new /mob/living/simple_animal/hostile/mushroom(M.loc)
- if("tomato") new_mob = new /mob/living/simple_animal/tomato(M.loc)
- if("mouse") new_mob = new /mob/living/simple_animal/mouse(M.loc)
- if("chicken") new_mob = new /mob/living/simple_animal/chicken(M.loc)
- if("cow") new_mob = new /mob/living/simple_animal/cow(M.loc)
- if("lizard") new_mob = new /mob/living/simple_animal/lizard(M.loc)
- else new_mob = new /mob/living/simple_animal/chick(M.loc)
- new_mob.universal_speak = 1
+ if(prob(50))
+ var/beast = pick("carp","bear","mushroom","statue")
+ switch(beast)
+ if("carp") new_mob = new /mob/living/simple_animal/hostile/carp(M.loc)
+ if("bear") new_mob = new /mob/living/simple_animal/hostile/bear(M.loc)
+ if("mushroom") new_mob = new /mob/living/simple_animal/hostile/mushroom(M.loc)
+ if("statue") new_mob = new /mob/living/simple_animal/hostile/statue(M.loc)
+ else
+ var/animal = pick("parrot","corgi","crab","pug","cat","tomato","mouse","chicken","cow","lizard","chick")
+ switch(animal)
+ if("parrot") new_mob = new /mob/living/simple_animal/parrot(M.loc)
+ if("corgi") new_mob = new /mob/living/simple_animal/corgi(M.loc)
+ if("crab") new_mob = new /mob/living/simple_animal/crab(M.loc)
+ if("pug") new_mob = new /mob/living/simple_animal/pug(M.loc)
+ if("cat") new_mob = new /mob/living/simple_animal/cat(M.loc)
+ if("tomato") new_mob = new /mob/living/simple_animal/tomato(M.loc)
+ if("mouse") new_mob = new /mob/living/simple_animal/mouse(M.loc)
+ if("chicken") new_mob = new /mob/living/simple_animal/chicken(M.loc)
+ if("cow") new_mob = new /mob/living/simple_animal/cow(M.loc)
+ if("lizard") new_mob = new /mob/living/simple_animal/lizard(M.loc)
+ else new_mob = new /mob/living/simple_animal/chick(M.loc)
+ new_mob.universal_speak = 1
if("human")
new_mob = new /mob/living/carbon/human(M.loc)
@@ -221,8 +226,20 @@ proc/wabbajack(mob/living/M)
/obj/item/projectile/magic/animate/Bump(var/atom/change)
. = ..()
if(istype(change, /obj/item) || istype(change, /obj/structure) && !is_type_in_list(change, protected_objects))
- var/obj/O = change
- new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer)
+ if(istype(change, /obj/structure/closet/statue))
+ for(var/mob/living/carbon/human/H in change.contents)
+ var/mob/living/simple_animal/hostile/statue/S = new /mob/living/simple_animal/hostile/statue(change.loc)
+ S.name = "statue of [H.name]"
+ S.faction = "\ref[firer]"
+ S.icon = change.icon
+ if(H.mind)
+ H.mind.transfer_to(S)
+ S << "You are an animate statue. You cannot move when monitored, but are nearly invincible and deadly when unobserved! Do not harm [firer.name], your creator."
+ del(H)
+ del(change)
+ else
+ var/obj/O = change
+ new /mob/living/simple_animal/hostile/mimic/copy(O.loc, O, firer)
else if(istype(change, /mob/living/simple_animal/hostile/mimic/copy))
// Change our allegiance!
var/mob/living/simple_animal/hostile/mimic/copy/C = change
diff --git a/code/modules/reagents/Chemistry-Machinery.dm b/code/modules/reagents/Chemistry-Machinery.dm
index 0035f9f1d71..7899a152a8c 100644
--- a/code/modules/reagents/Chemistry-Machinery.dm
+++ b/code/modules/reagents/Chemistry-Machinery.dm
@@ -388,20 +388,26 @@
reagents.clear_reagents()
icon_state = "mixer0"
else if (href_list["createpill"]) //Also used for condiment packs.
+ if(reagents.total_volume == 0) return
if(!condi)
- var/name = reject_bad_text(input(usr,"Name:","Name your pill!",reagents.get_master_reagent_name()))
+ var/amount = 1
+ var/vol_each = min(reagents.total_volume, 50)
+ if(text2num(href_list["many"]))
+ amount = min(max(round(input(usr, "Amount:", "How many pills?") as num), 1), 10)
+ vol_each = min(reagents.total_volume/amount, 50)
+ var/name = reject_bad_text(input(usr,"Name:","Name your pill!", "[reagents.get_master_reagent_name()] ([vol_each]u)"))
var/obj/item/weapon/reagent_containers/pill/P
- if(loaded_pill_bottle && loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots)
- P = new/obj/item/weapon/reagent_containers/pill(loaded_pill_bottle)
- else
- P = new/obj/item/weapon/reagent_containers/pill(src.loc)
-
- if(!name) name = reagents.get_master_reagent_name()
- P.name = "[name] pill"
- P.pixel_x = rand(-7, 7) //random position
- P.pixel_y = rand(-7, 7)
- reagents.trans_to(P,50)
+ for(var/i = 0; i < amount; i++)
+ if(loaded_pill_bottle && loaded_pill_bottle.contents.len < loaded_pill_bottle.storage_slots)
+ P = new/obj/item/weapon/reagent_containers/pill(loaded_pill_bottle)
+ else
+ P = new/obj/item/weapon/reagent_containers/pill(src.loc)
+ if(!name) name = reagents.get_master_reagent_name()
+ P.name = "[name] pill"
+ P.pixel_x = rand(-7, 7) //random position
+ P.pixel_y = rand(-7, 7)
+ reagents.trans_to(P,vol_each)
else
var/name = reject_bad_text(input(usr,"Name:","Name your bag!",reagents.get_master_reagent_name()))
var/obj/item/weapon/reagent_containers/food/condiment/pack/P = new/obj/item/weapon/reagent_containers/food/condiment/pack(src.loc)
@@ -479,7 +485,8 @@
else
dat += "Empty
"
if(!condi)
- dat += "
Create pill (50 units max)
"
+ dat += "
Create pill (50 units max)
"
+ dat += "Create pills (10 pills max)
"
dat += "Create bottle (30 units max)"
else
dat += "
Create pack (10 units max)
"
@@ -948,7 +955,7 @@ obj/machinery/computer/pandemic/proc/replicator_cooldown(var/waittime)
user << "Cannot refine into a reagent."
return 1
- user.before_take_item(O)
+ user.unEquip(O)
O.loc = src
holdingitems += O
src.updateUsrDialog()
diff --git a/code/modules/reagents/reagent_containers/food/drinks.dm b/code/modules/reagents/reagent_containers/food/drinks.dm
index ccdd272fb8b..aa65a77fc81 100644
--- a/code/modules/reagents/reagent_containers/food/drinks.dm
+++ b/code/modules/reagents/reagent_containers/food/drinks.dm
@@ -289,6 +289,15 @@
//////////////////////////soda_cans//
//These are in their own group to be used as IED's in /obj/item/weapon/grenade/ghettobomb.dm
+/obj/item/weapon/reagent_containers/food/drinks/soda_cans/attack(mob/M, mob/user)
+ if(M == user && !src.reagents.total_volume && user.a_intent == "harm" && user.zone_sel.selecting == "head")
+ user.visible_message("[user] crushes the can of [src] on \his forehead!", "You crush the can of [src] on your forehead!")
+ playsound(user.loc,'sound/weapons/pierce.ogg', rand(10,50), 1)
+ var/obj/item/trash/can/crushed_can = new /obj/item/trash/can(user.loc)
+ crushed_can.icon_state = icon_state
+ del(src)
+ ..()
+
/obj/item/weapon/reagent_containers/food/drinks/soda_cans/cola
name = "Space Cola"
desc = "Cola. in space."
@@ -376,3 +385,4 @@
reagents.add_reagent("dr_gibb", 30)
src.pixel_x = rand(-10.0, 10)
src.pixel_y = rand(-10.0, 10)
+
diff --git a/code/modules/reagents/reagent_containers/food/snacks.dm b/code/modules/reagents/reagent_containers/food/snacks.dm
index 5665dd3fa55..8182f24b216 100644
--- a/code/modules/reagents/reagent_containers/food/snacks.dm
+++ b/code/modules/reagents/reagent_containers/food/snacks.dm
@@ -17,7 +17,7 @@
/obj/item/weapon/reagent_containers/food/snacks/proc/On_Consume()
if(!usr) return
if(!reagents.total_volume)
- usr.drop_from_inventory(src) //so icons update :[
+ usr.unEquip(src) //so icons update :[
if(trash)
if(ispath(trash,/obj/item/weapon/grown))
@@ -41,7 +41,7 @@
eatverb = pick("bite","chew","nibble","gnaw","gobble","chomp")
if(!reagents.total_volume) //Shouldn't be needed but it checks to see if it has anything left in it.
user << "None of [src] left, oh no!"
- M.drop_from_inventory(src) //so icons update :[
+ M.unEquip(src) //so icons update :[
del(src)
return 0
if(istype(M, /mob/living/carbon))
@@ -143,7 +143,7 @@
if(!iscarbon(user))
return 0
user << "You slip [W] inside [src]."
- user.u_equip(W)
+ user.unEquip(W)
if ((user.client && user.s_active != src))
user.client.screen -= W
W.dropped(user)
diff --git a/code/modules/reagents/reagent_containers/glass.dm b/code/modules/reagents/reagent_containers/glass.dm
index 673e08aefaa..d5f1bf22dff 100644
--- a/code/modules/reagents/reagent_containers/glass.dm
+++ b/code/modules/reagents/reagent_containers/glass.dm
@@ -205,7 +205,7 @@
user << "You add [D] to [src]."
del(D)
user.put_in_hands(new /obj/item/weapon/bucket_sensor)
- user.drop_from_inventory(src)
+ user.unEquip(src)
del(src)
/*
diff --git a/code/modules/reagents/reagent_containers/pill.dm b/code/modules/reagents/reagent_containers/pill.dm
index 7a4ae30f964..96deeb0e5cb 100644
--- a/code/modules/reagents/reagent_containers/pill.dm
+++ b/code/modules/reagents/reagent_containers/pill.dm
@@ -21,7 +21,7 @@
attack(mob/M, mob/user, def_zone)
if(M == user)
M << "You swallow [src]."
- M.drop_from_inventory(src) //icon update
+ M.unEquip(src) //icon update
if(reagents.total_volume)
reagents.reaction(M, INGEST)
spawn(5)
@@ -37,7 +37,7 @@
if(!do_mob(user, M)) return
- user.drop_from_inventory(src) //icon update
+ user.unEquip(src) //icon update
M.visible_message("[user] forces [M] to swallow [src].", \
"[user] forces [M] to swallow [src].")
@@ -153,3 +153,14 @@
New()
..()
reagents.add_reagent("bicaridine", 30)
+
+/obj/item/weapon/reagent_containers/pill/stimulant
+ name = "stimulant pill"
+ desc = "Often taken by overworked employees, athletes, and the inebriated. You'll snap to attention immediately!"
+ icon_state = "pill19"
+
+/obj/item/weapon/reagent_containers/pill/stimulant/New()
+ ..()
+ reagents.add_reagent("hyperzine", 10)
+ reagents.add_reagent("ethylredoxrazine", 10)
+ reagents.add_reagent("coffee", 30)
diff --git a/code/modules/reagents/reagent_containers/spray.dm b/code/modules/reagents/reagent_containers/spray.dm
index f576fa36413..4a89bfe6418 100644
--- a/code/modules/reagents/reagent_containers/spray.dm
+++ b/code/modules/reagents/reagent_containers/spray.dm
@@ -6,9 +6,9 @@
item_state = "cleaner"
flags = OPENCONTAINER | NOBLUDGEON
slot_flags = SLOT_BELT
- throwforce = 3
+ throwforce = 0
w_class = 2.0
- throw_speed = 2
+ throw_speed = 3
throw_range = 10
amount_per_transfer_from_this = 10
volume = 250
@@ -47,7 +47,7 @@
tiles =1
else
tiles =3
-
+
reagents.trans_to(D, amount_per_transfer_from_this, 1/tiles)
D.color = mix_color_from_reagents(D.reagents.reagent_list)
spawn(0)
@@ -147,7 +147,7 @@
icon = 'icons/obj/gun.dmi'
icon_state = "chemsprayer"
item_state = "chemsprayer"
- throwforce = 3
+ throwforce = 0
w_class = 3.0
volume = 600
origin_tech = "combat=3;materials=3;engineering=3"
diff --git a/code/modules/reagents/syringe_gun.dm b/code/modules/reagents/syringe_gun.dm
index a2fb2d14c72..ab500385249 100644
--- a/code/modules/reagents/syringe_gun.dm
+++ b/code/modules/reagents/syringe_gun.dm
@@ -4,7 +4,7 @@
icon_state = "syringegun"
item_state = "syringegun"
w_class = 3
- throw_speed = 2
+ throw_speed = 3
throw_range = 10
force = 4
m_amt = 2000
diff --git a/code/modules/recycling/disposal.dm b/code/modules/recycling/disposal.dm
index 51f0bd79ea8..dd116b9c6d6 100644
--- a/code/modules/recycling/disposal.dm
+++ b/code/modules/recycling/disposal.dm
@@ -60,7 +60,7 @@
// attack by item places it in to disposal
/obj/machinery/disposal/attackby(var/obj/item/I, var/mob/user)
- if(stat & BROKEN || !I || !user)
+ if(stat & BROKEN || !I || !user || (I.flags & NODROP))
return
if(isrobot(user) && !istype(I, /obj/item/weapon/storage/bag/trash))
diff --git a/code/modules/surgery/tools.dm b/code/modules/surgery/tools.dm
index bdca49bfde9..f0b26de217c 100644
--- a/code/modules/surgery/tools.dm
+++ b/code/modules/surgery/tools.dm
@@ -91,7 +91,7 @@
force = 15.0
w_class = 3.0
throwforce = 9.0
- throw_speed = 3
+ throw_speed = 2
throw_range = 5
m_amt = 20000
g_amt = 10000
diff --git a/code/modules/telesci/telepad.dm b/code/modules/telesci/telepad.dm
index e1eaf1f19eb..9051b819d78 100644
--- a/code/modules/telesci/telepad.dm
+++ b/code/modules/telesci/telepad.dm
@@ -103,7 +103,7 @@
flags = CONDUCT
force = 10.0
throwforce = 10.0
- throw_speed = 1
+ throw_speed = 2
throw_range = 5
var/rcharges = 10
var/obj/machinery/pad = null
diff --git a/code/modules/telesci/telesci_computer.dm b/code/modules/telesci/telesci_computer.dm
index 8c29fb7f0dd..d5cf9caab3b 100644
--- a/code/modules/telesci/telesci_computer.dm
+++ b/code/modules/telesci/telesci_computer.dm
@@ -76,7 +76,7 @@
else if(istype(W, /obj/item/device/gps))
if(!inserted_gps)
inserted_gps = W
- user.drop_from_inventory(W)
+ user.unEquip(W)
W.loc = src
user.visible_message("[user] inserts [W] into \the [src]'s GPS device slot.")
else if(istype(W, /obj/item/device/multitool))
diff --git a/code/unused/Agouri_stuff.dm b/code/unused/Agouri_stuff.dm
index b567de3b53e..c81e7f7c0eb 100644
--- a/code/unused/Agouri_stuff.dm
+++ b/code/unused/Agouri_stuff.dm
@@ -1570,7 +1570,7 @@ turf/simulated/floor/return_siding_icon_state()
if(is_light_floor())
var/obj/item/stack/tile/light/T = floor_tile
if(T.state)
- user.u_equip(C)
+ user.unEquip(C)
del(C)
T.state = C //fixing it by bashing it with a light bulb, fun eh?
update_icon()
diff --git a/code/unused/assemblies.dm b/code/unused/assemblies.dm
index 0b6db495148..632c5587dc1 100644
--- a/code/unused/assemblies.dm
+++ b/code/unused/assemblies.dm
@@ -5,7 +5,7 @@
var/status = 0.0
throwforce = 10
w_class = 3.0
- throw_speed = 4
+ throw_speed = 3
throw_range = 10
/obj/item/assembly/a_i_a
@@ -211,7 +211,7 @@
part2 = null
user.put_in_hand(R)
- user.before_take_item(W)
+ user.unEquip(W)
R.part3 = W
R.part3.master = R
del(src)
@@ -224,15 +224,15 @@
if (user.client)
user.client.screen -= W
if (user.r_hand == W)
- user.u_equip(W)
+ user.unEquip(W)
user.r_hand = R
else
- user.u_equip(W)
+ user.unEquip(W)
user.l_hand = R
W.master = R
src.master = R
src.layer = initial(src.layer)
- user.u_equip(src)
+ user.unEquip(src)
if (user.client)
user.client.screen -= src
src.loc = R
@@ -251,15 +251,15 @@
if (user.client)
user.client.screen -= W
if (user.r_hand == W)
- user.u_equip(W)
+ user.unEquip(W)
user.r_hand = R
else
- user.u_equip(W)
+ user.unEquip(W)
user.l_hand = R
W.master = R
src.master = R
src.layer = initial(src.layer)
- user.u_equip(src)
+ user.unEquip(src)
if (user.client)
user.client.screen -= src
src.loc = R
diff --git a/code/unused/asteroiddevice.dm b/code/unused/asteroiddevice.dm
index f9c6aa9185e..ab37e4a8071 100644
--- a/code/unused/asteroiddevice.dm
+++ b/code/unused/asteroiddevice.dm
@@ -6,7 +6,7 @@
slot_flags = SLOT_BELT
w_class = 2.0
item_state = "electronic"
- throw_speed = 4
+ throw_speed = 3
throw_range = 20
m_amt = 500
var/obj/effect/ship_landing_beacon/beacon = null
diff --git a/code/unused/beast/death.dm b/code/unused/beast/death.dm
index 271f72beb27..a5ff611cb54 100644
--- a/code/unused/beast/death.dm
+++ b/code/unused/beast/death.dm
@@ -2,7 +2,7 @@
var/mob/dead/phantasm/P = new (src.loc)
for(var/obj/O in src.contents) // Where src is a mob
if(istype(O, /obj/item)) // Only remember carried items (sanity checking, mostly)
- src.u_equip(O) // Unequip the item if we're wearing it
+ src.unEquip(O) // Unequip the item if we're wearing it
if (src.client)
src.client.screen -= O // Clear out any overlays the item added, notably in the equip windows
O.loc = src.loc // Honestly not sure if these two steps are necessary
diff --git a/code/unused/brewing.dm b/code/unused/brewing.dm
index 1ce22ef909b..ab0e5fb2158 100644
--- a/code/unused/brewing.dm
+++ b/code/unused/brewing.dm
@@ -58,7 +58,7 @@
/obj/machinery/mill/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food))
- user.u_equip(W)
+ user.unEquip(W)
W.loc = src
input += W
else
@@ -128,7 +128,7 @@
/obj/machinery/fermenter/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food))
- user.u_equip(W)
+ user.unEquip(W)
W.loc = src
input += W
else
@@ -189,7 +189,7 @@
/obj/machinery/still/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food))
- user.u_equip(W)
+ user.unEquip(W)
W.loc = src
input += W
else
@@ -274,7 +274,7 @@
/obj/machinery/centrifuge/attackby(var/obj/item/weapon/W as obj, mob/user as mob)
if(istype(W,/obj/item/weapon/reagent_containers/food))
- user.u_equip(W)
+ user.unEquip(W)
W.loc = src
input += W
else
diff --git a/code/unused/disease2/cureimplanter.dm b/code/unused/disease2/cureimplanter.dm
index 56d6a5af111..4bd0ff71305 100644
--- a/code/unused/disease2/cureimplanter.dm
+++ b/code/unused/disease2/cureimplanter.dm
@@ -6,7 +6,7 @@
var/works = 0
var/datum/disease2/disease/virus2 = null
item_state = "syringe_0"
- throw_speed = 1
+ throw_speed = 3
throw_range = 5
w_class = 2.0
diff --git a/code/unused/gamemodes/deathmatch.dm b/code/unused/gamemodes/deathmatch.dm
index e748eb4f20d..8b6925c2a64 100644
--- a/code/unused/gamemodes/deathmatch.dm
+++ b/code/unused/gamemodes/deathmatch.dm
@@ -25,7 +25,7 @@
for(var/obj/item/weapon/W in list(M.wear_suit, M.w_uniform, M.r_store, M.l_store, M.wear_id, M.belt,
M.gloves, M.glasses, M.head, M.ears, M.shoes, M.wear_mask, M.back,
M.handcuffed, M.r_hand, M.l_hand))
- M.u_equip(W)
+ M.unEquip(W)
del(W)
var/randomname = "Killiam Shakespeare"
diff --git a/code/unused/gamemodes/ruby.dm b/code/unused/gamemodes/ruby.dm
index 28c523c8aad..bd7600e1a4b 100644
--- a/code/unused/gamemodes/ruby.dm
+++ b/code/unused/gamemodes/ruby.dm
@@ -262,7 +262,7 @@
icon_state = "wepon"
w_class = 3.0
throwforce = 60.0
- throw_speed = 2
+ throw_speed = 1
throw_range = 20
force = 24.0
var/mob/owner
diff --git a/code/unused/new_year.dm b/code/unused/new_year.dm
index 6ff0357686b..7bc8eca22fe 100644
--- a/code/unused/new_year.dm
+++ b/code/unused/new_year.dm
@@ -17,7 +17,7 @@
W.loc = src
if (user.client)
user.client.screen -= W
- user.u_equip(W)
+ user.unEquip(W)
var/const/bottom_right_x = 115.0
var/const/bottom_right_y = 150.0
var/const/top_left_x = 15.0
@@ -53,7 +53,7 @@
var/det_time = 100.0
w_class = 2.0
item_state = "flashbang"
- throw_speed = 4
+ throw_speed = 3
throw_range = 20
flags = FPRINT | TABLEPASS | CONDUCT
slot_flags = SLOT_BELT
diff --git a/code/unused/powerarmor/powerarmor.dm b/code/unused/powerarmor/powerarmor.dm
index 2bf9d94dea2..c6c906f93d0 100644
--- a/code/unused/powerarmor/powerarmor.dm
+++ b/code/unused/powerarmor/powerarmor.dm
@@ -76,14 +76,14 @@
user << "\blue Suit interlocks engaged."
if(helmrequired)
helm = user.head
- helm.canremove = 0
+ helm.flags |= NODROP
if(glovesrequired)
gloves = user.gloves
- gloves.canremove = 0
+ gloves.flags |= NODROP
if(shoesrequired)
shoes = user.shoes
- shoes.canremove = 0
- canremove = 0
+ shoes.flags |= NODROP
+ flags |= NODROP
sleep(20)
if(atmoseal)
@@ -145,15 +145,15 @@
if(!sudden)
usr << "\blue Suit interlocks disengaged."
if(helm)
- helm.canremove = 1
+ helm.flags &= ~NODROP
helm = null
if(gloves)
- gloves.canremove = 1
+ gloves.flags &= ~NODROP
gloves = null
if(shoes)
- shoes.canremove = 1
+ shoes.flags &= ~NODROP
gloves = null
- canremove = 1
+ flags &= ~NODROP
//Not a tabbing error, the thing only unlocks if you intentionally power-down the armor. --NEO
sleep(delay)
diff --git a/code/unused/powerarmor/powerarmorcomponents.dm b/code/unused/powerarmor/powerarmorcomponents.dm
index 07b525115cd..dbac3a6098a 100644
--- a/code/unused/powerarmor/powerarmorcomponents.dm
+++ b/code/unused/powerarmor/powerarmorcomponents.dm
@@ -206,7 +206,7 @@
return
if(!helm.parent)
user << "\blue Helmet locked."
- helm.canremove = 0
+ helm.flags |= NODROP
parent.helm = helm
helm.parent = parent
sleep(20)
@@ -233,7 +233,7 @@
if(manual)
sleep(20)
user << "\blue Helmet unlocked."
- helm.canremove = 1
+ helm.flags &= ~NODROP
parent.helm = null
helm.parent = null
diff --git a/code/unused/scrap.dm b/code/unused/scrap.dm
index e15d6780b20..a18981e46e5 100644
--- a/code/unused/scrap.dm
+++ b/code/unused/scrap.dm
@@ -10,7 +10,7 @@
item_state = "scrap-metal"
desc = "A piece of scrap"
var/classtext = ""
- throwforce = 14.0
+ throwforce = 5.0
m_amt = 0
g_amt = 0
w_amt = 0
@@ -18,7 +18,7 @@
var/blood = 0 // 0=none, 1=blood-stained, 2=bloody
throwforce = 8.0
- throw_speed = 1
+ throw_speed = 2
throw_range = 4
w_class = 1
flags = FPRINT | TABLEPASS | CONDUCT
diff --git a/html/changelog.html b/html/changelog.html
index 6e099fe64a0..ec62e0bf1ef 100644
--- a/html/changelog.html
+++ b/html/changelog.html
@@ -54,6 +54,60 @@ should be listed in the changelog upon commit tho. Thanks. -->
+
+
17 February 2014
+
Ergovisavi updated:
+
+ - Mining has been significantly overhauled. Hostile alien life has infested the western asteroid! Miners are given an equipment voucher to obtain equipment to protect themselves. There is a spare voucher in the HoP's office, should someone want to switch to mining mid-shift.
+ - The Ore Redemption Machine has been added just outside of the Science wing. Ore goes in, Sheets go out, and points are tallied on the machine. Insert your ID to claim points, then spend them on goods at Mining Equipment Lockers. You require specific accesses to tell the Ore Redemption Machine to unload its sheets.
+ - Should you not care for being eaten alive by horrible alien life, it is suggested you stick to the eastern asteroid, where there is no hostile alien life... though the yield on ore is not as good.
+ - Most ore is no longer visible to the naked eye. You must ping it with a Mining Scanner (Available in all mining lockers) to locate nearby ore. Make sure to equip your mesons first, or it won't be visible.
+ - Mesons no longer remove the darkness overlay, you must properly light your environment. Hull breaches to space can still be clearly seen, and it will still protect you from the singulo.
+ - Mineral spawn rates have been significantly tweaked to cut down on unnecessary inflation of mineral economy.
+ - The asteroid no longer has ambient power on the entire asteroid. AI's who go onto asteroid turf will slowly die of power loss. Mining outposts are unaffected.
+ - Fixed an issue where projectiles shot by simple mobs or thrown would hit multiple times.
+
+
+
+
+
17 February 2014
+
Fleure updated:
+
+ - Reduced chicken crates to contain 1-3 chicks, down from 3-6
+ - Increased fertile chicken egg chance from 10% to 25%
+
+
+
+
9 February 2014
+
Neerti updated:
+
+ - Sec Belts can now hold Stun Batons.
+ - Stun Batons now only take 10 seconds to fully recharge.
+
+
ADamDirtyApe updated:
+
+ - The lawyer now spawns with a Sec Headset.
+
+
Incoming5643 updated:
+
+ - Blob Zombies! When a Blob Spore moves over a dead human body it will infect the body and revive it as a more powerful varient of the spore. Has double the health and deals more damage.
+
+
Giacom updated:
+
+ - A new hostile statue mob, can only move when not being observed, tends to break lights and cause blindness.
+
+
adrix89 updated:
+
+ - Spray Bottles can no longer wet up to three tiles with water.
+ - Spray Bottles have a third higher release volume that wets a single tile.
+ - Water slip times are reduced to the same stun times as soap.
+
+
Razharas updated:
+
+ - Tables can now be used as an alternative way to craft makeshift items. Simply click-drag table to yourself bring up a list.
+
+
+
9 February 2014
Demas updated:
diff --git a/icons/effects/160x160.dmi b/icons/effects/160x160.dmi
index 6a0a4948cbb..57e3a81edf1 100644
Binary files a/icons/effects/160x160.dmi and b/icons/effects/160x160.dmi differ
diff --git a/icons/effects/288x288.dmi b/icons/effects/288x288.dmi
index cb06e502864..1779b574819 100644
Binary files a/icons/effects/288x288.dmi and b/icons/effects/288x288.dmi differ
diff --git a/icons/effects/ULIcons.dmi b/icons/effects/ULIcons.dmi
deleted file mode 100644
index 3104e6ea668..00000000000
Binary files a/icons/effects/ULIcons.dmi and /dev/null differ
diff --git a/icons/effects/fire.dmi b/icons/effects/fire.dmi
index 9e5c0d2db83..79a73189c3a 100644
Binary files a/icons/effects/fire.dmi and b/icons/effects/fire.dmi differ
diff --git a/icons/effects/genetics.dmi b/icons/effects/genetics.dmi
index c839eb9e4eb..ba81afe9d11 100644
Binary files a/icons/effects/genetics.dmi and b/icons/effects/genetics.dmi differ
diff --git a/icons/mob/OnFire.dmi b/icons/mob/OnFire.dmi
index 52c6ad88a1c..8bf6e2c7749 100644
Binary files a/icons/mob/OnFire.dmi and b/icons/mob/OnFire.dmi differ
diff --git a/icons/mob/alien.dmi b/icons/mob/alien.dmi
index 72e4087be31..6fb0f9eab89 100644
Binary files a/icons/mob/alien.dmi and b/icons/mob/alien.dmi differ
diff --git a/icons/mob/animal.dmi b/icons/mob/animal.dmi
index 79ccdd4acc3..982e96469bd 100644
Binary files a/icons/mob/animal.dmi and b/icons/mob/animal.dmi differ
diff --git a/icons/mob/augments.dmi b/icons/mob/augments.dmi
index c0a574c4afe..b0ade807d83 100644
Binary files a/icons/mob/augments.dmi and b/icons/mob/augments.dmi differ
diff --git a/icons/mob/back.dmi b/icons/mob/back.dmi
index 6d2273ab3b5..a8341cbe106 100644
Binary files a/icons/mob/back.dmi and b/icons/mob/back.dmi differ
diff --git a/icons/mob/belt.dmi b/icons/mob/belt.dmi
index 111cc3901c6..dbd9650e215 100644
Binary files a/icons/mob/belt.dmi and b/icons/mob/belt.dmi differ
diff --git a/icons/mob/belt_mirror.dmi b/icons/mob/belt_mirror.dmi
index 36392855550..7b4899106d2 100644
Binary files a/icons/mob/belt_mirror.dmi and b/icons/mob/belt_mirror.dmi differ
diff --git a/icons/mob/dam_human.dmi b/icons/mob/dam_human.dmi
index de04520f410..d5dd44660cc 100644
Binary files a/icons/mob/dam_human.dmi and b/icons/mob/dam_human.dmi differ
diff --git a/icons/mob/ears.dmi b/icons/mob/ears.dmi
index 08b53b870b2..49ea9b688cb 100644
Binary files a/icons/mob/ears.dmi and b/icons/mob/ears.dmi differ
diff --git a/icons/mob/eyes.dmi b/icons/mob/eyes.dmi
index 6ca6ae26303..f38ab00909e 100644
Binary files a/icons/mob/eyes.dmi and b/icons/mob/eyes.dmi differ
diff --git a/icons/mob/feet.dmi b/icons/mob/feet.dmi
index a76699659bd..df1d62ea489 100644
Binary files a/icons/mob/feet.dmi and b/icons/mob/feet.dmi differ
diff --git a/icons/mob/hands.dmi b/icons/mob/hands.dmi
index 76c6dec6e9e..2b09a9324ad 100644
Binary files a/icons/mob/hands.dmi and b/icons/mob/hands.dmi differ
diff --git a/icons/mob/head.dmi b/icons/mob/head.dmi
index 987986a431b..3ba9d230823 100644
Binary files a/icons/mob/head.dmi and b/icons/mob/head.dmi differ
diff --git a/icons/mob/human.dmi b/icons/mob/human.dmi
index ef7bddb8235..f70f31638d5 100644
Binary files a/icons/mob/human.dmi and b/icons/mob/human.dmi differ
diff --git a/icons/mob/human_face.dmi b/icons/mob/human_face.dmi
index ba946e3c80f..8b4ddeed26a 100644
Binary files a/icons/mob/human_face.dmi and b/icons/mob/human_face.dmi differ
diff --git a/icons/mob/items_lefthand.dmi b/icons/mob/items_lefthand.dmi
index 074bb4c450e..b03ac4dceaf 100644
Binary files a/icons/mob/items_lefthand.dmi and b/icons/mob/items_lefthand.dmi differ
diff --git a/icons/mob/items_righthand.dmi b/icons/mob/items_righthand.dmi
index dbd4f6fcdd7..3e45eaade8e 100644
Binary files a/icons/mob/items_righthand.dmi and b/icons/mob/items_righthand.dmi differ
diff --git a/icons/mob/mask.dmi b/icons/mob/mask.dmi
index 1a7e9d17360..18234526df3 100644
Binary files a/icons/mob/mask.dmi and b/icons/mob/mask.dmi differ
diff --git a/icons/mob/mob.dmi b/icons/mob/mob.dmi
index 0ffd3ebd1a0..28451ff9fc2 100644
Binary files a/icons/mob/mob.dmi and b/icons/mob/mob.dmi differ
diff --git a/icons/mob/monkey.dmi b/icons/mob/monkey.dmi
index 2e579a26033..e8c55d3e49b 100644
Binary files a/icons/mob/monkey.dmi and b/icons/mob/monkey.dmi differ
diff --git a/icons/mob/suit.dmi b/icons/mob/suit.dmi
index ba2e098d7a1..f6c5126b902 100644
Binary files a/icons/mob/suit.dmi and b/icons/mob/suit.dmi differ
diff --git a/icons/mob/ties.dmi b/icons/mob/ties.dmi
index 1214382efa2..acfb656c318 100644
Binary files a/icons/mob/ties.dmi and b/icons/mob/ties.dmi differ
diff --git a/icons/mob/underwear.dmi b/icons/mob/underwear.dmi
index 48c2760d065..81f1155ee5c 100644
Binary files a/icons/mob/underwear.dmi and b/icons/mob/underwear.dmi differ
diff --git a/icons/mob/uniform.dmi b/icons/mob/uniform.dmi
index 34b9fc6e3e5..63241a21829 100644
Binary files a/icons/mob/uniform.dmi and b/icons/mob/uniform.dmi differ
diff --git a/icons/mob/uniform_fat.dmi b/icons/mob/uniform_fat.dmi
deleted file mode 100644
index c887239f1ff..00000000000
Binary files a/icons/mob/uniform_fat.dmi and /dev/null differ
diff --git a/icons/obj/aibots.dmi b/icons/obj/aibots.dmi
index f58a356c34c..f0393979b54 100644
Binary files a/icons/obj/aibots.dmi and b/icons/obj/aibots.dmi differ
diff --git a/icons/obj/device.dmi b/icons/obj/device.dmi
index dccfb27e867..50e8e5b0a6c 100644
Binary files a/icons/obj/device.dmi and b/icons/obj/device.dmi differ
diff --git a/icons/obj/items.dmi b/icons/obj/items.dmi
index 30bf098b43c..b6cabec2b38 100644
Binary files a/icons/obj/items.dmi and b/icons/obj/items.dmi differ
diff --git a/icons/obj/janitor.dmi b/icons/obj/janitor.dmi
index aeca4370ed6..fbe96a72628 100644
Binary files a/icons/obj/janitor.dmi and b/icons/obj/janitor.dmi differ
diff --git a/icons/obj/machines/mining_machines.dmi b/icons/obj/machines/mining_machines.dmi
index d7b1c4bab46..f53cbb0d438 100644
Binary files a/icons/obj/machines/mining_machines.dmi and b/icons/obj/machines/mining_machines.dmi differ
diff --git a/icons/obj/mining.dmi b/icons/obj/mining.dmi
index 7743a19e368..5c9e5021add 100644
Binary files a/icons/obj/mining.dmi and b/icons/obj/mining.dmi differ
diff --git a/icons/obj/syringe.dmi b/icons/obj/syringe.dmi
index 8a8c97ff39e..09d1e31b887 100644
Binary files a/icons/obj/syringe.dmi and b/icons/obj/syringe.dmi differ
diff --git a/icons/turf/walls.dmi b/icons/turf/walls.dmi
index dd4bc39df8d..732b66e7197 100644
Binary files a/icons/turf/walls.dmi and b/icons/turf/walls.dmi differ
diff --git a/tgstation.dme b/tgstation.dme
index 2d215ee7cd1..bcecf26c725 100644
--- a/tgstation.dme
+++ b/tgstation.dme
@@ -839,6 +839,7 @@
#include "code\modules\library\lib_items.dm"
#include "code\modules\library\lib_machines.dm"
#include "code\modules\library\lib_readme.dm"
+#include "code\modules\mining\equipment_locker.dm"
#include "code\modules\mining\machine_input_output_plates.dm"
#include "code\modules\mining\machine_processing.dm"
#include "code\modules\mining\machine_stacking.dm"