Merge branch 'master' into development

# Conflicts:
#	code/modules/modular_computers/computers/modular_computer/damage.dm
This commit is contained in:
skull132
2017-05-20 19:18:35 +03:00
9 changed files with 66 additions and 33 deletions

View File

@@ -140,7 +140,7 @@
user.visible_message("<span class='danger'>[user] starts to put [victim] into the gibber!</span>")
src.add_fingerprint(user)
if(do_after(user, 30) && victim.Adjacent(src) && user.Adjacent(src) && victim.Adjacent(user) && !occupant)
if(do_after(user, 30 SECONDS, act_target = src) && victim.Adjacent(src) && user.Adjacent(src) && victim.Adjacent(user) && !occupant)
user.visible_message("<span class='danger'>[user] stuffs [victim] into the gibber!</span>")
if(victim.client)
victim.client.perspective = EYE_PERSPECTIVE

View File

@@ -5,6 +5,7 @@
icon_state = "recharge_floor"
density = 0
layer = TURF_LAYER + 0.1
anchored = 1
var/obj/mecha/charging = null
var/charge = 45

View File

@@ -11,7 +11,7 @@
var/heal_burn = 0
/obj/item/stack/medical/attack(mob/living/M as mob, mob/user as mob)
if (!istype(M) || istype(M, /mob/living/silicon))
if (!istype(M) || istype(M, /mob/living/silicon) || istype(M, /mob/living/simple_animal/spiderbot))
user << "<span class='warning'>\The [src] cannot be applied to [M]!</span>"
return 1

View File

@@ -34,14 +34,20 @@
return eyestab(M,user)
else
return ..()
var/fullness = M.nutrition + (M.reagents.get_reagent_amount("nutriment") * 25)
if (reagents.total_volume > 0)
reagents.trans_to_mob(M, reagents.total_volume, CHEM_INGEST)
if(M == user)
if(!M.can_eat(loaded))
return
if (fullness > (550 * (1 + M.overeatduration / 2000)))
M <<"You cannot force anymore food down!"
return
M.visible_message("<span class='notice'>\The [user] eats some [loaded] from \the [src].</span>")
else
if (fullness > (550 * (1 + M.overeatduration / 2000)))
M <<"You cannot force anymore food down their throat!"
return
user.visible_message("<span class='warning'>\The [user] begins to feed \the [M]!</span>")
if(!(M.can_force_feed(user, loaded) && do_mob(user, M, 5 SECONDS)))
return

View File

@@ -106,6 +106,9 @@
icon_state = "mmi_empty"
name = "Man-Machine Interface"
if(istype(src,/obj/item/device/mmi/digital/robot))
icon_state = "mainboard"
name = "robotic intelligence circuit"
proc
transfer_identity(var/mob/living/carbon/human/H)//Same deal as the regular brain proc. Used for human-->robot people.

View File

@@ -13,22 +13,22 @@
// Handle things that are part of this interface but not removing/replacing a given item.
if("pockets")
visible_message("<span class='danger'>\The [user] is trying to empty \the [src]'s pockets!</span>")
if(do_after(user,HUMAN_STRIP_DELAY))
if(do_after(user,HUMAN_STRIP_DELAY, act_target = src))
empty_pockets(user)
return 1
if("splints")
visible_message("<span class='danger'>\The [user] is trying to remove \the [src]'s splints!</span>")
if(do_after(user,HUMAN_STRIP_DELAY))
if(do_after(user,HUMAN_STRIP_DELAY, act_target = src))
remove_splints(user)
return 1
if("sensors")
visible_message("<span class='danger'>\The [user] is trying to set \the [src]'s sensors!</span>")
if(do_after(user,HUMAN_STRIP_DELAY))
if(do_after(user,HUMAN_STRIP_DELAY, act_target = src))
toggle_sensors(user)
return 1
if("internals")
visible_message("<span class='danger'>\The [usr] is trying to set \the [src]'s internals!</span>")
if(do_after(user,HUMAN_STRIP_DELAY))
if(do_after(user,HUMAN_STRIP_DELAY, act_target = src))
toggle_internals(user)
return 1
if("tie")
@@ -40,7 +40,7 @@
return 0
visible_message("<span class='danger'>\The [usr] is trying to remove \the [src]'s [A.name]!</span>")
if(!do_after(user,HUMAN_STRIP_DELAY))
if(!do_after(user,HUMAN_STRIP_DELAY, act_target = src))
return 0
if(!A || suit.loc != src || !(A in suit.accessories))

View File

@@ -74,7 +74,7 @@
var/mob/living/L = .
if(L.reagents)
L.reagents.add_reagent("toxin", poison_per_bite)
if(prob(poison_per_bite))
if(prob(poison_per_bite) && (!issilicon(L) && !isipc(L)))
to_chat(L, "<span class='warning'>You feel a tiny prick.</span>")
L.reagents.add_reagent(poison_type, 5)

View File

@@ -289,34 +289,54 @@ obj/machinery/lapvend/attackby(obj/item/weapon/W as obj, mob/user as mob)
// Simplified payment processing, returns 1 on success.
/obj/machinery/lapvend/proc/process_payment(var/obj/item/weapon/card/id/I, var/obj/item/ID_container)
var/obj/item/weapon/spacecash/S = null
if (istype(ID_container, /obj/item/weapon/spacecash))
S = ID_container
if(I==ID_container || ID_container == null)
visible_message("<span class='info'>\The [usr] swipes \the [I] through \the [src].</span>")
else
visible_message("<span class='info'>\The [usr] swipes \the [ID_container] through \the [src].</span>")
var/datum/money_account/customer_account = get_account(I.associated_account_number)
if (!customer_account || customer_account.suspended)
ping("Connection error. Unable to connect to account.")
return 0
if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2)
var/attempt_pin = input("Enter pin code", "Vendor transaction") as num
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
if(!customer_account)
ping("Unable to access account: incorrect credentials.")
if(I)
var/datum/money_account/customer_account = get_account(I.associated_account_number)
if (!customer_account || customer_account.suspended)
ping("Connection error. Unable to connect to account.")
return 0
if(total_price > customer_account.money)
ping("Insufficient funds in account.")
if(customer_account.security_level != 0) //If card requires pin authentication (ie seclevel 1 or 2)
var/attempt_pin = input("Enter pin code", "Vendor transaction") as num
customer_account = attempt_account_access(I.associated_account_number, attempt_pin, 2)
if(!customer_account)
ping("Unable to access account: incorrect credentials.")
return 0
if(total_price > customer_account.money)
ping("Insufficient funds in account.")
return 0
else
customer_account.money -= total_price
var/datum/transaction/T = new()
T.target_name = "Computer Manufacturer (via [src.name])"
T.purpose = "Purchase of [(devtype == 1) ? "laptop computer" : "tablet microcomputer"]."
T.amount = total_price
T.source_terminal = src.name
T.date = current_date_string
T.time = worldtime2text()
customer_account.transaction_log.Add(T)
return 1
else if(S)
if(total_price > S.worth)
ping("Insufficient funds!")
return 0
else
S.worth -= total_price
if(S.worth <= 0)
qdel(S)
return 1
else // just incase
ping("You cannot pay with this!")
return 0
else
customer_account.money -= total_price
var/datum/transaction/T = new()
T.target_name = "Computer Manufacturer (via [src.name])"
T.purpose = "Purchase of [(devtype == 1) ? "laptop computer" : "tablet microcomputer"]."
T.amount = total_price
T.source_terminal = src.name
T.date = current_date_string
T.time = worldtime2text()
customer_account.transaction_log.Add(T)
return 1

View File

@@ -177,6 +177,9 @@
if(user != load)
return 0
if(user.restrained())
return 0
if(is_train_head())
if(direction == reverse_direction(dir) && tow)
return 0