Gamer skill (#49618)

* gaming.dm added

* initial changes

* gamer god trait

* finalization after testing

* spellcheck + flavortext

* phone gamer support

* incorporates review suggestions

* tiny flavor change in pwr game desc

* more trait-related touchups and minor fluff

* adds and removes ?s where needed

Co-authored-by: spookydonut <github@spooksoftware.com>
This commit is contained in:
spookydonut
2020-03-05 20:06:33 +08:00
committed by GitHub
parent 2f33f1ef58
commit 49eab491b4
10 changed files with 123 additions and 44 deletions
@@ -704,7 +704,7 @@
/obj/item/reagent_containers/food/drinks/soda_cans/pwr_game
name = "Pwr Game"
desc = "The only drink with the PWR that true gamers crave."
desc = "The only drink with the PWR that true gamers crave. When a gamer talks about gamerfuel, this is what they're literally referring to."
icon_state = "purple_can"
list_reagents = list(/datum/reagent/consumable/pwr_game = 30)
@@ -27,6 +27,7 @@
/datum/computer_file/program/arcade/proc/game_check(mob/user)
sleep(5)
user?.mind?.adjust_experience(/datum/skill/gaming, 1)
if(boss_hp <= 0)
heads_up = "You have crushed [boss_name]! Rejoice!"
playsound(computer.loc, 'sound/arcade/win.ogg', 50, TRUE, extrarange = -3, falloff = 10)
@@ -35,8 +36,8 @@
if(istype(computer))
computer.update_icon()
ticket_count += 1
user?.mind?.adjust_experience(/datum/skill/gaming, 50)
sleep(10)
return
else if(player_hp <= 0 || player_mp <= 0)
heads_up = "You have been defeated... how will the station survive?"
playsound(computer.loc, 'sound/arcade/lose.ogg', 50, TRUE, extrarange = -3, falloff = 10)
@@ -44,9 +45,8 @@
program_icon_state = "arcade_off"
if(istype(computer))
computer.update_icon()
user?.mind?.adjust_experience(/datum/skill/gaming, 10)
sleep(10)
return
return
/datum/computer_file/program/arcade/proc/enemy_check(mob/user)
var/boss_attackamt = 0 //Spam protection from boss attacks as well.
@@ -101,11 +101,13 @@
if(computer)
printer = computer.all_components[MC_PRINT]
var/gamerSkillLevel = user.mind?.get_skill_level(/datum/skill/gaming)
var/gamerSkill = usr.mind?.get_skill_modifier(/datum/skill/gaming, SKILL_RANDS_MODIFIER)
switch(action)
if("Attack")
var/attackamt = 0 //Spam prevention.
if(pause_state == FALSE)
attackamt = rand(2,6)
attackamt = rand(2,6) + rand(0, gamerSkill)
pause_state = TRUE
heads_up = "You attack for [attackamt] damage."
playsound(computer.loc, 'sound/arcade/hit.ogg', 50, TRUE, extrarange = -3, falloff = 10)
@@ -118,8 +120,11 @@
var/healamt = 0 //More Spam Prevention.
var/healcost = 0
if(pause_state == FALSE)
healamt = rand(6,8)
healcost = rand(1,3)
healamt = rand(6,8) + rand(0, gamerSkill)
var/maxPointCost = 3
if(gamerSkillLevel >= SKILL_LEVEL_JOURNEYMAN)
maxPointCost = 2
healcost = rand(1, maxPointCost)
pause_state = TRUE
heads_up = "You heal for [healamt] damage."
playsound(computer.loc, 'sound/arcade/heal.ogg', 50, TRUE, extrarange = -3, falloff = 10)
@@ -132,7 +137,7 @@
if("Recharge_Power")
var/rechargeamt = 0 //As above.
if(pause_state == FALSE)
rechargeamt = rand(4,7)
rechargeamt = rand(4,7) + rand(0, gamerSkill)
pause_state = TRUE
heads_up = "You regain [rechargeamt] magic power."
playsound(computer.loc, 'sound/arcade/mana.ogg', 50, TRUE, extrarange = -3, falloff = 10)
@@ -487,8 +487,17 @@
glass_name = "glass of Pwr Game"
glass_desc = "Goes well with a Vlad's salad."
/datum/reagent/consumable/pwr_game/reaction_mob(mob/living/C, method=TOUCH, reac_volume)
..()
if(C?.mind?.get_skill_level(/datum/skill/gaming) >= SKILL_LEVEL_LEGENDARY && method==INGEST && !HAS_TRAIT(C, TRAIT_GAMERGOD))
ADD_TRAIT(C, TRAIT_GAMERGOD, "pwr_game")
to_chat(C, "<span class='nicegreen'>As you imbibe the Pwr Game, your gamer third eye opens... \
You feel as though a great secret of the universe has been made known to you...</span>")
/datum/reagent/consumable/pwr_game/on_mob_life(mob/living/carbon/M)
M.adjust_bodytemperature(-8 * TEMPERATURE_DAMAGE_COEFFICIENT, M.get_body_temp_normal())
if(prob(10))
M?.mind.adjust_experience(/datum/skill/gaming, 5)
..()
/datum/reagent/consumable/shamblers