Merge pull request #5778 from Zuhayr/dev

Dev
This commit is contained in:
Zuhayr
2014-07-26 15:43:01 +09:30
13 changed files with 110 additions and 101 deletions

View File

@@ -13,6 +13,8 @@
using.icon = ui_style
using.icon_state = "intent_"+mymob.a_intent
using.screen_loc = ui_acti
using.color = ui_color
using.alpha = ui_alpha
using.layer = 20
src.adding += using
action_intent = using
@@ -27,6 +29,7 @@
using.name = "help"
using.icon = ico
using.screen_loc = ui_acti
using.alpha = ui_alpha
using.layer = 21
src.adding += using
help_intent = using
@@ -38,6 +41,7 @@
using.name = "disarm"
using.icon = ico
using.screen_loc = ui_acti
using.alpha = ui_alpha
using.layer = 21
src.adding += using
disarm_intent = using
@@ -49,6 +53,7 @@
using.name = "grab"
using.icon = ico
using.screen_loc = ui_acti
using.alpha = ui_alpha
using.layer = 21
src.adding += using
grab_intent = using
@@ -60,6 +65,7 @@
using.name = "harm"
using.icon = ico
using.screen_loc = ui_acti
using.alpha = ui_alpha
using.layer = 21
src.adding += using
hurt_intent = using
@@ -440,23 +446,24 @@
//Handle the gun settings buttons
mymob.gun_setting_icon = new /obj/screen/gun/mode(null)
//mymob.gun_setting_icon.color = ui_color
mymob.gun_setting_icon.alpha = ui_alpha
mymob.item_use_icon = new /obj/screen/gun/item(null)
//mymob.item_use_icon.color = ui_color
mymob.item_use_icon.alpha = ui_alpha
mymob.gun_move_icon = new /obj/screen/gun/move(null)
//mymob.gun_move_icon.color = ui_color
mymob.gun_move_icon.alpha = ui_alpha
mymob.gun_run_icon = new /obj/screen/gun/run(null)
//mymob.gun_run_icon.color = ui_color
mymob.gun_run_icon.alpha = ui_alpha
if (mymob.client)
if (mymob.client.gun_mode) // If in aim mode, correct the sprite
mymob.gun_setting_icon.dir = 2
for(var/obj/item/weapon/gun/G in mymob) // If targeting someone, display other buttons
if (G.target)
mymob.item_use_icon = new /obj/screen/gun/item(null)
if (mymob.client.target_can_click)
mymob.item_use_icon.dir = 1
src.adding += mymob.item_use_icon
mymob.gun_move_icon = new /obj/screen/gun/move(null)
if (mymob.client.target_can_move)
mymob.gun_move_icon.dir = 1
mymob.gun_run_icon = new /obj/screen/gun/run(null)
if (mymob.client.target_can_run)
mymob.gun_run_icon.dir = 1
src.adding += mymob.gun_run_icon
src.adding += mymob.gun_move_icon
mymob.client.screen = null
@@ -495,7 +502,7 @@
for(var/obj/item/I in src)
if(I.icon_action_button)
var/obj/screen/item_action/A = new(hud_used)
//A.icon = 'icons/mob/screen1_action.dmi'
//A.icon_state = I.icon_action_button
A.icon = ui_style2icon(client.prefs.UI_style)

View File

@@ -12,6 +12,7 @@ datum/controller/vote
var/list/voted = list()
var/list/voting = list()
var/list/current_votes = list()
var/list/additional_text = list()
var/auto_muted = 0
New()
@@ -63,6 +64,7 @@ datum/controller/vote
voted.Cut()
voting.Cut()
current_votes.Cut()
additional_text.Cut()
/* if(auto_muted && !ooc_allowed)
auto_muted = 0
@@ -210,6 +212,13 @@ datum/controller/vote
if(ticker.current_state >= 2)
return 0
choices.Add(config.votable_modes)
var/list/L = typesof(/datum/game_mode) - /datum/game_mode
for (var/F in choices)
for (var/T in L)
var/datum/game_mode/M = new T()
if (M.config_tag == F)
additional_text.Add("<td align = 'center'>[M.required_players]</td>")
break
if("crew_transfer")
if(check_rights(R_ADMIN|R_MOD, 0))
question = "End the shift?"
@@ -290,16 +299,24 @@ datum/controller/vote
if(mode)
if(question) . += "<h2>Vote: '[question]'</h2>"
else . += "<h2>Vote: [capitalize(mode)]</h2>"
. += "Time Left: [time_remaining] s<hr><ul>"
. += "Time Left: [time_remaining] s<hr>"
. += "<table width = '100%'><tr><td align = 'center'><b>Choices</b></td><td align = 'center'><b>Votes</b></td>"
if(capitalize(mode) == "Gamemode") .+= "<td align = 'center'><b>Minimum Players</b></td></b></tr>"
for(var/i = 1, i <= choices.len, i++)
var/votes = choices[choices[i]]
if(!votes) votes = 0
. += "<tr>"
if(current_votes[C.ckey] == i)
. += "<li><b><a href='?src=\ref[src];vote=[i]'>[choices[i]] ([votes] votes)</a></b></li>"
. += "<td><b><a href='?src=\ref[src];vote=[i]'>[choices[i]]</a></b></td><td align = 'center'>[votes]</td>"
else
. += "<li><a href='?src=\ref[src];vote=[i]'>[choices[i]] ([votes] votes)</a></li>"
. += "<td><a href='?src=\ref[src];vote=[i]'>[choices[i]]</a></b></td><td align = 'center'>[votes]</td>"
. += "</ul><hr>"
if (additional_text.len >= i)
. += additional_text[i]
. += "</tr>"
. += "</table><hr>"
if(admin)
. += "(<a href='?src=\ref[src];vote=cancel'>Cancel Vote</a>) "
else

View File

@@ -1368,19 +1368,17 @@ It is possible to destroy the net by the occupant or someone else.
playsound(M.loc, 'sound/effects/sparks2.ogg', 50, 1)
anim(M.loc,M,'icons/mob/mob.dmi',,"phasein",,M.dir)
del(src)//Wait for everything to finish, delete the net. Else it will stop everything once net is deleted, including the spawn(0).
else
M.loc = null
M << "\red You appear in a strange place!"
M << "\red You appear in a strange place!"
for(var/mob/O in viewers(src, 3))
O.show_message(text("[] vanished!", M), 1, text("You hear sparks flying!"), 2)
for(var/mob/O in viewers(src, 3))
O.show_message(text("[] vanished!", M), 1, text("You hear sparks flying!"), 2)
if(!isnull(master))//As long as they still exist.
master << "\blue <b>SUCCESS</b>: \black transport procedure of \the [affecting] complete."
if(!isnull(master))//As long as they still exist.
master << "\blue <b>SUCCESS</b>: \black transport procedure of \the [affecting] complete."
M.captured = 0 //Important.
M.anchored = initial(M.anchored) //Changes the mob's anchored status to the original one; this is not handled by the can_move proc.
M.captured = 0 //Important.
M.anchored = initial(M.anchored) //Changes the mob's anchored status to the original one; this is not handled by the can_move proc.
else//And they are free.
M << "\blue You are free of the net!"

View File

@@ -682,7 +682,7 @@ As such, it's hard-coded for now. No reason for it not to be, really.
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjapulse
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjablade
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjastar
verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
//verbs -= /obj/item/clothing/suit/space/space_ninja/proc/ninjanet
//=======//KAMIKAZE VERBS//=======//

View File

@@ -73,7 +73,9 @@
var/mob/M = new mobtype
if(ishuman(M) || isbrain(M))
race = "Human"
var/mob/living/carbon/human/H = M
race = "[H.species.name]"
else if(ismonkey(M))
race = "Monkey"

View File

@@ -97,41 +97,56 @@
/obj/item/weapon/melee/baton/attack(mob/M, mob/user)
if(status && (CLUMSY in user.mutations) && prob(50))
user << "span class='danger'>You accidentally hit yourself with the [src]!</span>"
user.Weaken(30)
deductcharge(hitcost)
return
if(isrobot(M))
..()
return
if(!isliving(M))
var/mob/living/carbon/human/H = M
if(user.a_intent == "hurt")
if(!..()) return
H.visible_message("<span class='danger'>[M] has been beaten with the [src] by [user]!</span>")
user.attack_log += "\[[time_stamp()]\]<font color='red'> Beat [H.name] ([H.ckey]) with [src.name]</font>"
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Beaten by [user.name] ([user.ckey]) with [src.name]</font>"
msg_admin_attack("[user.name] ([user.ckey]) beat [H.name] ([H.ckey]) with [src.name] (<A HREF='?_src_=holder;adminplayerobservecoodjump=1;X=[user.x];Y=[user.y];Z=[user.z]'>JMP</a>)")
playsound(src.loc, "swing_hit", 50, 1, -1)
else if(!status)
H.visible_message("<span class='warning'>[H] has been prodded with [src] by [user]. Luckily it was off.</span>")
return
var/mob/living/L = M
if(user.a_intent == "harm")
..()
if(!status)
L.visible_message("<span class='warning'>[L] has been prodded with [src] by [user]. Luckily it was off.</span>")
return
var/stunroll = (rand(1,100))
if(ishuman(L) && status)
user.lastattacked = L
L.lastattacker = user
if(user == L) // Attacking yourself can't miss
if(status)
user.lastattacked = H
H.lastattacker = user
if(user == H) // Attacking yourself can't miss
stunroll = 100
if(stunroll < 40)
L.visible_message("\red <B>[user] misses [L] with \the [src]!")
msg_admin_attack("[key_name(user)] attempted to stun [key_name(L)] with the [src].")
H.visible_message("\red <B>[user] misses [H] with \the [src]!")
msg_admin_attack("[key_name(user)] attempted to stun [key_name(H)] with the [src].")
return
L.Stun(stunforce)
L.Weaken(stunforce)
L.apply_effect(STUTTER, stunforce)
H.Stun(stunforce)
H.Weaken(stunforce)
H.apply_effect(STUTTER, stunforce)
L.visible_message("<span class='danger'>[L] has been stunned with [src] by [user]!</span>")
H.visible_message("<span class='danger'>[H] has been stunned with [src] by [user]!</span>")
playsound(loc, 'sound/weapons/Egloves.ogg', 50, 1, -1)
msg_admin_attack("[key_name(user)] stunned [key_name(L)] with the [src].")
msg_admin_attack("[key_name(user)] stunned [key_name(H)] with the [src].")
user.attack_log += "\[[time_stamp()]\]<font color='red'> Stunned [H.name] ([H.ckey]) with [src.name]</font>"
H.attack_log += "\[[time_stamp()]\]<font color='orange'> Stunned by [user.name] ([user.ckey]) with [src.name]</font>"
if(isrobot(loc))
var/mob/living/silicon/robot/R = loc
if(R && R.cell)

View File

@@ -1027,13 +1027,6 @@ datum/preferences
if((!(lang.flags & RESTRICTED)) && (is_alien_whitelisted(user, L)||(!( lang.flags & WHITELISTED ))||(S && (L in S.secondary_langs))))
new_languages += lang
//Apparently there's some PHP script that needs to be updated in order to give people whitelist languages.
//This workaround should be removed once that has been properly updated
if (lang.name == "Siik'maas")
new_languages |= all_languages["Siik'tajr"]
if (lang.name == "Siik'tajr")
new_languages |= all_languages["Siik'maas"]
languages_available = 1
if(!(languages_available))
@@ -1395,6 +1388,7 @@ datum/preferences
character.skills = skills
character.used_skillpoints = used_skillpoints
// Destroy/cyborgize organs

View File

@@ -25,7 +25,7 @@
src << "As a ghost, you will now [(prefs.toggles & CHAT_GHOSTRADIO) ? "hear all radio chat in the world" : "only hear from nearby speakers"]."
prefs.save_preferences()
feedback_add_details("admin_verb","TGR")
/client/proc/toggle_hear_radio()
set name = "Show/Hide RadioChatter"
set category = "Preferences"

View File

@@ -21,25 +21,13 @@
flags = WHITELISTED
/datum/language/tajaran
name = "Siik'maas"
name = "Siik'tajr"
desc = "The traditionally employed tongue of Ahdomai, composed of expressive yowls and chirps. Native to the Tajaran."
speech_verb = "mrowls"
colour = "tajaran"
key = "j"
flags = WHITELISTED
/datum/language/tajaran_sign
name = "Siik'tajr"
desc = "An expressive language that combines yowls and chirps with posture, tail and ears. Spoken by many Tajaran."
speech_verb = "mrowls"
colour = "tajaran_signlang"
key = "y" //only "dfpqxyz" left.
//need to find a way to resolve possesive macros
signlang_verb = list("flicks their left ear", "flicks their right ear", "swivels their ears", "twitches their tail", "curls the end of their tail", "arches their tail", "wiggles the end of their tail", "waves their tail about", "holds up a claw", "gestures with their left hand", "gestures with their right hand", "gestures with their tail", "gestures with their ears")
flags = WHITELISTED | NONVERBAL
/datum/language/skrell
name = "Skrellian"
desc = "A melodic and complex language spoken by the Skrell of Qerrbalak. Some of the notes are inaudible to humans."

View File

@@ -146,8 +146,7 @@
name = "Tajaran"
icobase = 'icons/mob/human_races/r_tajaran.dmi'
deform = 'icons/mob/human_races/r_def_tajaran.dmi'
language = "Siik'maas"
secondary_langs = list("Siik'tajr")
language = "Siik'tajr"
tail = "tajtail"
unarmed_type = /datum/unarmed_attack/claws
darksight = 8

View File

@@ -394,16 +394,16 @@ 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_ONE+300), 1) + owner.species.body_temperature
if (owner.bodytemperature < fever_temperature)
//world << "fever: [owner.bodytemperature] < [fever_temperature], raising temperature."
owner.bodytemperature++
var/fever_temperature = (owner.species.heat_level_1 - owner.species.body_temperature - 1)* min(germ_level/INFECTION_LEVEL_TWO, 1) + owner.species.body_temperature
if (fever_temperature > owner.bodytemperature)
//need to make sure we raise temperature fast enough to get around environmental cooling preventing us from reaching fever_temperature
owner.bodytemperature += (fever_temperature - T20C)/BODYTEMP_COLD_DIVISOR + 1
if(prob(round(germ_level/10)))
if (antibiotics < 5)
germ_level++
if (prob(5)) //adjust this to tweak how fast people take toxin damage from infections
if (prob(10)) //adjust this to tweak how fast people take toxin damage from infections
owner.adjustToxLoss(1)
if(germ_level >= INFECTION_LEVEL_TWO && antibiotics < 5)
@@ -442,6 +442,7 @@ Note that amputating the affected organ does in fact remove the infection from t
if (!(status & ORGAN_DEAD))
status |= ORGAN_DEAD
owner << "<span class='notice'>You can't feel your [display_name] anymore...</span>"
owner.update_body(1)
germ_level++
owner.adjustToxLoss(1)

View File

@@ -30,6 +30,11 @@
projectile_type = "/obj/item/projectile/beam/stun"
modifystate = "energystun"
update_icon()
if(user.l_hand == src)
user.update_inv_l_hand()
else
user.update_inv_r_hand()

View File

@@ -250,42 +250,25 @@ client/var
//These are called by the on-screen buttons, adjusting what the victim can and cannot do.
client/proc/add_gun_icons()
if (!usr.item_use_icon)
usr.item_use_icon = new /obj/screen/gun/item(null)
usr.item_use_icon.icon_state = "no_item[target_can_click]"
usr.item_use_icon.name = "[target_can_click ? "Disallow" : "Allow"] Item Use"
if (!usr.gun_move_icon)
usr.gun_move_icon = new /obj/screen/gun/move(null)
usr.gun_move_icon.icon_state = "no_walk[target_can_move]"
usr.gun_move_icon.name = "[target_can_move ? "Disallow" : "Allow"] Walking"
if (target_can_move && !usr.gun_run_icon)
usr.gun_run_icon = new /obj/screen/gun/run(null)
usr.gun_run_icon.icon_state = "no_run[target_can_run]"
usr.gun_run_icon.name = "[target_can_run ? "Disallow" : "Allow"] Running"
screen += usr.item_use_icon
screen += usr.gun_move_icon
if (target_can_move)
screen += usr.gun_run_icon
client/proc/remove_gun_icons()
if(!usr) return 1 // Runtime prevention on N00k agents spawning with SMG
screen -= usr.item_use_icon
screen -= usr.gun_move_icon
if (target_can_move)
screen -= usr.gun_run_icon
del usr.gun_move_icon
del usr.item_use_icon
del usr.gun_run_icon
client/verb/ToggleGunMode()
set hidden = 1
gun_mode = !gun_mode
if(gun_mode)
usr << "You will now take people captive."
add_gun_icons()
else
usr << "You will now shoot where you target."
for(var/obj/item/weapon/gun/G in usr)
@@ -302,7 +285,7 @@ client/verb/AllowTargetMove()
target_can_move = !target_can_move
if(target_can_move)
usr << "Target may now walk."
usr.gun_run_icon = new /obj/screen/gun/run(null) //adding icon for running permission
//usr.gun_run_icon = new /obj/screen/gun/run(null) //adding icon for running permission
screen += usr.gun_run_icon
else
usr << "Target may no longer move."