Merge remote-tracking branch 'upstream/master' into dev-freeze

Signed-off-by: Mloc-Hibernia <colmohici@gmail.com>

Conflicts:
	code/modules/mob/living/silicon/robot/robot_modules.dm
This commit is contained in:
Mloc-Hibernia
2014-07-18 13:08:12 +00:00
17 changed files with 103 additions and 80 deletions
-1
View File
@@ -100,7 +100,6 @@ var/list/ai_list = list()
add_language("Siik'maas", 0)
add_language("Siik'tajr", 0)
add_language("Skrellian", 0)
add_language("Rootspeak", 0)
add_language("Tradeband", 1)
add_language("Gutter", 0)
@@ -317,10 +317,10 @@
if (!yes || ( \
!istype(AM,/obj/machinery/door) && \
!istype(AM,/obj/machinery/recharge_station) && \
!istype(AM,/obj/machinery/disposal/deliveryChute && \
!istype(AM,/obj/machinery/disposal/deliveryChute) && \
!istype(AM,/obj/machinery/teleport/hub) && \
!istype(AM,/obj/effect/portal)
))) return
)) return
..()
return
@@ -56,8 +56,13 @@
modules += O
/obj/item/weapon/robot_module/proc/add_languages(var/mob/living/silicon/robot/R)
R.add_language("Tradeband", 1)
//full set of languages
R.add_language("Sol Common", 1)
R.add_language("Tradeband", 1)
R.add_language("Sinta'unathi", 0)
R.add_language("Siik'maas", 0)
R.add_language("Siik'tajr", 0)
R.add_language("Skrellian", 0)
R.add_language("Gutter", 0)
+1 -1
View File
@@ -394,7 +394,7 @@ Note that amputating the affected organ does in fact remove the infection from t
if(germ_level >= INFECTION_LEVEL_ONE)
//having an infection raises your body temperature
var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/INFECTION_LEVEL_THREE, 1) + owner.species.body_temperature
var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/(INFECTION_LEVEL_ONE+300), 1) + owner.species.body_temperature
if (owner.bodytemperature < fever_temperature)
//world << "fever: [owner.bodytemperature] < [fever_temperature], raising temperature."
owner.bodytemperature++
@@ -85,6 +85,7 @@
harvesting = 0
cur_artifact.anchored = 0
cur_artifact.being_used = 0
cur_artifact = null
src.visible_message("<b>[name]</b> states, \"Battery is full.\"")
icon_state = "incubator"
@@ -140,27 +141,13 @@
src.visible_message("<b>[src]</b> states, \"Cannot harvest. Source already being harvested.\"")
else
var/mundane = 0
for(var/obj/O in get_turf(owned_scanner))
if(O.invisibility)
continue
if(!istype(O, /obj/machinery/artifact) && !istype(O, /obj/machinery/artifact_scanpad))
mundane++
break
for(var/mob/O in get_turf(owned_scanner))
if(O.invisibility)
continue
mundane++
break
if(articount > 1 || mundane)
var/message = "<b>[src]</b> states, \"Cannot harvest. Too many artifacts on the pad.\""
src.visible_message(message)
else
if(articount > 1)
state("Cannot harvest. Too many artifacts on the pad.")
else if(analysed)
cur_artifact = analysed
//if both effects are active, we can't harvest either
if(cur_artifact.my_effect.activated && cur_artifact.secondary_effect.activated)
if(cur_artifact.my_effect && cur_artifact.my_effect.activated && cur_artifact.secondary_effect.activated)
src.visible_message("<b>[src]</b> states, \"Cannot harvest. Source is emitting conflicting energy signatures.\"")
else if(!cur_artifact.my_effect.activated && !cur_artifact.secondary_effect.activated)
src.visible_message("<b>[src]</b> states, \"Cannot harvest. No energy emitting from source.\"")
@@ -233,6 +220,7 @@
harvesting = 0
cur_artifact.anchored = 0
cur_artifact.being_used = 0
cur_artifact = null
src.visible_message("<b>[name]</b> states, \"Energy harvesting interrupted.\"")
icon_state = "incubator"
@@ -16,6 +16,9 @@
p = min(p, 100)
icon_state = "anobattery[round(p,25)]"
/obj/item/weapon/anobattery/proc/use_power(var/amount)
stored_charge = max(0, stored_charge - amount)
/obj/item/weapon/anodevice
name = "Anomaly power utilizer"
icon = 'icons/obj/xenoarchaeology.dmi'
@@ -78,7 +81,7 @@
/obj/item/weapon/anodevice/process()
if(activated)
if(inserted_battery && inserted_battery.battery_effect)
if(inserted_battery && inserted_battery.battery_effect && (inserted_battery.stored_charge > 0) )
//make sure the effect is active
if(!inserted_battery.battery_effect.activated)
inserted_battery.battery_effect.ToggleActivate(1)
@@ -106,20 +109,20 @@
inserted_battery.battery_effect.DoEffectTouch(holder)
//consume power
inserted_battery.stored_charge -= energy_consumed_on_touch
inserted_battery.use_power(energy_consumed_on_touch)
else
//consume power equal to time passed
inserted_battery.stored_charge -= world.time - last_process
inserted_battery.use_power(world.time - last_process)
else if(inserted_battery.battery_effect.effect == EFFECT_PULSE)
inserted_battery.battery_effect.chargelevel = inserted_battery.battery_effect.chargelevelmax
//consume power relative to the time the artifact takes to charge and the effect range
inserted_battery.stored_charge -= inserted_battery.battery_effect.effectrange * inserted_battery.battery_effect.effectrange * inserted_battery.battery_effect.chargelevelmax
inserted_battery.use_power(inserted_battery.battery_effect.effectrange * inserted_battery.battery_effect.effectrange * inserted_battery.battery_effect.chargelevelmax)
else
//consume power equal to time passed
inserted_battery.stored_charge -= world.time - last_process
inserted_battery.use_power(world.time - last_process)
last_activation = world.time
@@ -159,11 +162,12 @@
//max 10 sec interval
interval = min(max(interval, 0), 100)
if(href_list["startup"])
activated = 1
src.visible_message("\blue \icon[src] [src] whirrs.", "\icon[src]\blue You hear something whirr.")
if(!inserted_battery.battery_effect.activated)
inserted_battery.battery_effect.ToggleActivate(1)
time_end = world.time + duration
if(inserted_battery && inserted_battery.battery_effect && (inserted_battery.stored_charge > 0) )
activated = 1
src.visible_message("\blue \icon[src] [src] whirrs.", "\icon[src]\blue You hear something whirr.")
if(!inserted_battery.battery_effect.activated)
inserted_battery.battery_effect.ToggleActivate(1)
time_end = world.time + duration
if(href_list["shutdown"])
activated = 0
if(href_list["ejectbattery"])
@@ -196,7 +200,7 @@
if(activated && inserted_battery.battery_effect.effect == EFFECT_TOUCH && !isnull(inserted_battery))
inserted_battery.battery_effect.DoEffectTouch(M)
inserted_battery.stored_charge -= energy_consumed_on_touch
inserted_battery.use_power(energy_consumed_on_touch)
user.visible_message("\blue [user] taps [M] with [src], and it shudders on contact.")
else
user.visible_message("\blue [user] taps [M] with [src], but nothing happens.")
@@ -13,22 +13,23 @@
var/last_scan_time = 0
var/scan_delay = 25
/obj/item/device/ano_scanner/New()
..()
spawn(0)
scan()
/obj/item/device/ano_scanner/initialize()
scan()
/obj/item/device/ano_scanner/attack_self(var/mob/user as mob)
return src.interact(user)
/obj/item/device/ano_scanner/interact(var/mob/user as mob)
var/message = "Background radiation levels detected."
if(nearest_artifact_distance >= 0)
message = "Exotic energy detected on wavelength '[nearest_artifact_id]' in a radius of [nearest_artifact_distance]m"
user << "<span class='info'>[message]</span>"
if(world.time - last_scan_time >= scan_delay)
spawn(0)
scan()
if(nearest_artifact_distance >= 0)
message = "Exotic energy detected on wavelength '[nearest_artifact_id]' in a radius of [nearest_artifact_distance]m"
else
message = "Scanning array is recharging."
user << "<span class='info'>[message]</span>"
/obj/item/device/ano_scanner/proc/scan()
set background = 1