Merge pull request #6582 from DeityLink/Bleeding-Edge

Fixing yet more stuff
This commit is contained in:
Rob Nelson
2015-11-13 18:04:12 -08:00
15 changed files with 74 additions and 60 deletions

View File

@@ -202,10 +202,11 @@
var/area/Hallway = locate(type)
for(var/turf/simulated/floor/Floor in Hallway.contents)
if(Floor.contents.len <= 0)
if(!is_blocked_turf(Floor))
Floors += Floor
if(Floors.len) // pick a floor to spawn at
var/turf/simulated/floor/Floor = pick(Floors)
new/obj/effect/biomass_controller(Floor) // spawn a controller at floor
message_admins("<span class='notice'>Event: Biomass spawned at [Floor.loc] ([Floor.x].[Floor.y].[Floor.z])</span>")
log_admin("Event: Biomass spawned at [Floor.loc] ([Floor.x],[Floor.y],[Floor.z]).")
message_admins("Event: Biomass spawned at [Floor.loc] [formatJumpTo(Floor)]")

View File

@@ -1,6 +1,5 @@
//Carn: Spacevines random event.
/proc/spacevine_infestation()
//writepanic("[__FILE__].[__LINE__] (no type)([usr ? usr.ckey : ""]) \\/proc/spacevine_infestation() called tick#: [world.time]")
spawn() //to stop the secrets panel hanging
@@ -8,10 +7,11 @@
for(var/areapath in typesof(/area/hallway))
var/area/A = locate(areapath)
for(var/turf/simulated/floor/F in A.contents)
if(!F.contents.len)
if(!is_blocked_turf(F))
turfs += F
if(turfs.len) //Pick a turf to spawn at if we can
var/turf/simulated/floor/T = pick(turfs)
new/obj/effect/plant_controller(T) //spawn a controller at turf
message_admins("<span class='notice'>Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z])</span>")
log_admin("Event: Spacevines spawned at [T.loc] ([T.x],[T.y],[T.z]).")
message_admins("Event: Spacevines spawned at [T.loc] [formatJumpTo(T)]")

View File

@@ -60,6 +60,7 @@
desc = "A shield capable of stopping most projectile and melee attacks. It can be retracted, expanded, and stored anywhere."
icon = 'icons/obj/weapons.dmi'
icon_state = "eshield0" // eshield1 for expanded
inhand_states = list("left_hand" = 'icons/mob/in-hand/left/shields.dmi', "right_hand" = 'icons/mob/in-hand/right/shields.dmi')
flags = FPRINT
siemens_coefficient = 1
force = 3.0
@@ -71,9 +72,36 @@
attack_verb = list("shoved", "bashed")
var/active = 0
suicide_act(mob/user)
viewers(user) << "<span class='danger'>[user] is putting the [src.name] to their head and activating it! It looks like \he's trying to commit suicide!</span>"
return (BRUTELOSS)
/obj/item/weapon/shield/energy/suicide_act(mob/user)
viewers(user) << "<span class='danger'>[user] is putting the [src.name] to their head and activating it! It looks like \he's trying to commit suicide!</span>"
return (BRUTELOSS)
/obj/item/weapon/shield/energy/IsShield()
if(active)
return 1
else
return 0
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
user << "<span class='warning'>You beat yourself in the head with [src].</span>"
user.take_organ_damage(5)
active = !active
if (active)
force = 10
w_class = 4
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
user << "<span class='notice'>[src] is now active.</span>"
else
force = 3
w_class = 1
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
user << "<span class='notice'>[src] can now be concealed.</span>"
icon_state = "eshield[active]"
item_state = "eshield[active]"
user.regenerate_icons()
add_fingerprint(user)
return
/obj/item/weapon/cloaking_device

View File

@@ -207,31 +207,3 @@
return
/*
* Energy Shield
*/
/obj/item/weapon/shield/energy/IsShield()
if(active)
return 1
else
return 0
/obj/item/weapon/shield/energy/attack_self(mob/living/user as mob)
if ((M_CLUMSY in user.mutations) && prob(50))
user << "<span class='warning'>You beat yourself in the head with [src].</span>"
user.take_organ_damage(5)
active = !active
if (active)
force = 10
icon_state = "eshield[active]"
w_class = 4
playsound(user, 'sound/weapons/saberon.ogg', 50, 1)
user << "<span class='notice'>[src] is now active.</span>"
else
force = 3
icon_state = "eshield[active]"
w_class = 1
playsound(user, 'sound/weapons/saberoff.ogg', 50, 1)
user << "<span class='notice'>[src] can now be concealed.</span>"
add_fingerprint(user)
return

View File

@@ -2795,16 +2795,17 @@
A.update_lightsource()
A.busjuke.dir = EAST
message_admins("[key_name_admin(usr)] has spawned an Adminbus. Who gave him the keys?")
log_admin("[key_name_admin(usr)] has spawned an Adminbus.")
if("spawnselfdummy")
feedback_inc("admin_secrets_fun_used",1)
feedback_add_details("admin_secrets_fun_used","TD")
message_admins("[key_name_admin(usr)] spawned himself as a Test Dummy.")
log_admin("[key_name_admin(usr)] spawned himself as a Test Dummy.")
var/turf/T = get_turf(usr)
var/mob/living/carbon/human/dummy/D = new /mob/living/carbon/human/dummy(T)
usr.client.cmd_assume_direct_control(D)
D.equip_to_slot_or_del(new /obj/item/clothing/under/color/black(D), slot_w_uniform)
D.equip_to_slot_or_del(new /obj/item/clothing/shoes/black(D), slot_shoes)
D.equip_to_slot_or_del(new /obj/item/weapon/card/id/admin(D), slot_wear_id)
D.equip_to_slot_or_del(new /obj/item/device/radio/headset/heads/captain(D), slot_ears)
D.equip_to_slot_or_del(new /obj/item/weapon/storage/backpack/satchel(D), slot_back)
D.equip_to_slot_or_del(new /obj/item/weapon/storage/box/engineer(D.back), slot_in_backpack)
@@ -2817,6 +2818,9 @@
newname = "Admin"
D.name = newname
D.real_name = newname
var/obj/item/weapon/card/id/admin/admin_id = new(D)
admin_id.registered_name = newname
D.equip_to_slot_or_del(admin_id, slot_wear_id)
//False flags and bait below. May cause mild hilarity or extreme pain. Now in one button
if("fakealerts")
feedback_inc("admin_secrets_fun_used",1)

View File

@@ -130,14 +130,14 @@
if(prob(seed ? seed.potency : 25))
if(!locked_atoms.len)
if(!locked_atoms || !locked_atoms.len)
var/mob/living/carbon/V = locate() in src.loc
if(V && V.stat != DEAD) // If mob exists and is not dead or captured.
lock_atom(V)
V << "<span class='danger'>The vines [pick("wind", "tangle", "tighten")] around you!</span>"
// FEED ME, SEYMOUR.
if(seed && locked_atoms.len)
if(seed && locked_atoms && locked_atoms.len)
var/mob/V = locked_atoms[1]
if(V.stat != DEAD) //Don't bother with a dead mob.

View File

@@ -482,7 +482,6 @@ var/global/list/damage_icon_parts = list()
update_mutations(0)
update_mutantrace(0)
update_inv_w_uniform(0)
update_inv_wear_id(0)
update_inv_gloves(0)
update_inv_glasses(0)
update_inv_ears(0)
@@ -493,6 +492,7 @@ var/global/list/damage_icon_parts = list()
update_inv_belt(0)
update_inv_back(0)
update_inv_wear_suit(0)
update_inv_wear_id(0)
update_inv_r_hand(0)
update_inv_l_hand(0)
update_inv_handcuffed(0)
@@ -580,8 +580,9 @@ var/global/list/damage_icon_parts = list()
wear_id.screen_loc = ui_id //TODO
if(w_uniform && w_uniform:displays_id)
var/obj/Overlays/O = obj_overlays[ID_LAYER]
O.icon = 'icons/mob/mob.dmi'
O.icon_state = "id"
var/obj/item/weapon/card/ID_worn = wear_id
O.icon = 'icons/mob/ids.dmi'
O.icon_state = ID_worn.icon_state
O.overlays.len = 0
if(wear_id.dynamic_overlay)
if(wear_id.dynamic_overlay["[ID_LAYER]"])

View File

@@ -14,31 +14,31 @@
/obj/Overlays/uniform_layer
layer = FLOAT_LAYER - 20
/obj/Overlays/id_layer
/obj/Overlays/shoes_layer
layer = FLOAT_LAYER - 19
/obj/Overlays/shoes_layer
/obj/Overlays/gloves_layer
layer = FLOAT_LAYER - 18
/obj/Overlays/gloves_layer
/obj/Overlays/ears_layer
layer = FLOAT_LAYER - 17
/obj/Overlays/ears_layer
/obj/Overlays/suit_layer
layer = FLOAT_LAYER - 16
/obj/Overlays/suit_layer
/obj/Overlays/glasses_layer
layer = FLOAT_LAYER - 15
/obj/Overlays/glasses_layer
/obj/Overlays/belt_layer
layer = FLOAT_LAYER - 14
/obj/Overlays/belt_layer
/obj/Overlays/suit_store_layer
layer = FLOAT_LAYER - 13
/obj/Overlays/suit_store_layer
/obj/Overlays/back_layer
layer = FLOAT_LAYER - 12
/obj/Overlays/back_layer
/obj/Overlays/id_layer
layer = FLOAT_LAYER - 11
/obj/Overlays/hair_layer

View File

@@ -1070,15 +1070,15 @@ var/list/RESTRICTED_CAMERA_NETWORKS = list( //Those networks can only be accesse
#define MUTATIONS_LAYER 3
#define DAMAGE_LAYER 4
#define UNIFORM_LAYER 5
#define ID_LAYER 6
#define SHOES_LAYER 7
#define GLOVES_LAYER 8
#define EARS_LAYER 9
#define SUIT_LAYER 10
#define GLASSES_LAYER 11
#define BELT_LAYER 12 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 13
#define BACK_LAYER 14
#define SHOES_LAYER 6
#define GLOVES_LAYER 7
#define EARS_LAYER 8
#define SUIT_LAYER 9
#define GLASSES_LAYER 10
#define BELT_LAYER 11 //Possible make this an overlay of somethign required to wear a belt?
#define SUIT_STORE_LAYER 12
#define BACK_LAYER 13
#define ID_LAYER 14
#define HAIR_LAYER 15 //TODO: make part of head layer?
#define GLASSES_OVER_HAIR_LAYER 16
#define FACEMASK_LAYER 17

View File

@@ -0,0 +1,8 @@
author: Deity Link
delete-after: true
changes:
- imageadd: Added on-mob sprites for every kinds of IDs.
- imageadd: Added on-mob sprites for every kinds of headsets.
- tweak: Moved the ID layer above suits and backpacks, so it's less likely to be hidden when it shouldn't.
- bugfix: Fixed energy shield sprite not updating when the shield is activated.
- bugfix: Fixed spacevine and biomass events being borked and not properly triggering. Welcome back spacevines random events.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
icons/mob/ids.dmi Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 699 B

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 684 B

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 213 KiB

After

Width:  |  Height:  |  Size: 209 KiB