|
24 | 24 | cooldown = 5 SECONDS |
25 | 25 | min_rank = PSI_RANK_OPERANT |
26 | 26 | icon_state = "coe_commune" |
27 | | - use_description = "Activate the power with z, then click on a creature on to psionically send them a message." |
| 27 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click on a creature on to psionically send them a message." |
28 | 28 |
|
29 | 29 | /datum/psionic_power/coercion/commune/invoke(mob/living/user, mob/living/target, proximity, parameters) |
30 | 30 | if(!istype(target) || user == target) |
|
46 | 46 | return TRUE |
47 | 47 |
|
48 | 48 | log_say("[key_name(user)] communed to [key_name(target)]: [text]") |
| 49 | + to_chat(user) "You succeed in sending your commune to [target]! Now to see if they listen..." |
49 | 50 |
|
50 | 51 | for (var/mob/M in GLOB.dead_mob_list) |
51 | 52 | to_chat(M,span_notice("<b>[user] psionically says to [target]:</b> [text]")) |
|
70 | 71 | cooldown = 5 SECONDS |
71 | 72 | min_rank = PSI_RANK_OPERANT |
72 | 73 | icon_state = "coe_assay" |
73 | | - use_description = "Activate the power with z, then click on a target in order to perform a deep coercive-redactive probe of their psionic potential." |
| 74 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click on a target in order to perform a deep coercive-redactive probe of their psionic potential." |
74 | 75 |
|
75 | 76 | /datum/psionic_power/coercion/assay/invoke(mob/living/user, mob/living/target, proximity, parameters) |
76 | 77 | if(!istype(target) || user == target) |
77 | 78 | return FALSE |
78 | 79 | . = ..() |
79 | 80 | if(.) |
80 | | - user.visible_message(span_warning("\The [user] holds the head of \the [target] in both hands...")) |
| 81 | + user.visible_message(span_warning("\The [user] taps into the the head of \the [target]...")) |
81 | 82 | to_chat(user, span_notice("You insinuate your mentality into that of \the [target]...")) |
82 | 83 | to_chat(target, span_warning("Your persona is being probed by the psychic lens of \the [user].")) |
83 | 84 | var/speed = (4 - (user.psi.get_rank(PSI_COERCION) - 1)) SECONDS |
|
89 | 90 | target.show_psi_assay(user) |
90 | 91 | return TRUE |
91 | 92 |
|
92 | | -/datum/psionic_power/coercion/psiping |
93 | | - name = "Psi-ping" |
94 | | - cost = 50 |
95 | | - heat = 20 |
96 | | - cooldown = 20 SECONDS |
97 | | - min_rank = PSI_RANK_OPERANT |
98 | | - icon_state = "coe_psiping" |
99 | | - use_description = "Activate the power with z, then click on yourself with an empty hand to detect nearby psionic signatures." |
100 | | - var/searching = FALSE |
101 | | - |
102 | | -/datum/psionic_power/coercion/psiping/invoke(mob/living/user, mob/living/target, proximity, parameters) |
103 | | - if(user != target || searching) |
104 | | - return FALSE |
105 | | - . = ..() |
106 | | - if(.) |
107 | | - to_chat(user, span_notice("You take a moment to tune into the local Nlom...")) |
108 | | - searching = TRUE |
109 | | - if(!do_after(user, 3 SECONDS, user)) |
110 | | - searching = FALSE |
111 | | - return FALSE |
112 | | - searching = FALSE |
113 | | - var/list/dirs = list() |
114 | | - for(var/mob/living/L in GLOB.mob_living_list) |
115 | | - var/turf/T = get_turf(L) |
116 | | - if(!T || L == user || L.stat == DEAD || issilicon(L) || !(L.psi || isdarkspawn(L)) || (L.z != user.z)) |
117 | | - continue |
118 | | - /* |
119 | | - var/image/ping_image = image(icon = 'icons/effects/effects.dmi', icon_state = "sonar_ping", loc = user) |
120 | | - ping_image.plane = LIGHTING_LAYER+1 |
121 | | - ping_image.layer = LIGHTING_LAYER+1 |
122 | | - ping_image.pixel_x = (T.x - user.x) * 32 |
123 | | - ping_image.pixel_y = (T.y - user.y) * 32 |
124 | | - user << ping_image |
125 | | - addtimer(CALLBACK(GLOBAL_PROC, /proc/qdel, ping_image), 8) |
126 | | - */ |
127 | | - var/direction = num2text(angle2dir(Get_Angle(user, L))) |
128 | | - var/dist |
129 | | - if(text2num(direction)) |
130 | | - switch(get_dist(user, L)) |
131 | | - if(0 to 10) |
132 | | - dist = "very close" |
133 | | - if(10 to 20) |
134 | | - dist = "close" |
135 | | - if(20 to 30) |
136 | | - dist = "a little ways away" |
137 | | - if(30 to 40) |
138 | | - dist = "farther away" |
139 | | - else |
140 | | - dist = "far away" |
141 | | - else |
142 | | - dist = "on top of you" |
143 | | - LAZYINITLIST(dirs[direction]) |
144 | | - dirs[direction][dist] += 1 |
145 | | - if(length(dirs)) |
146 | | - var/list/feedback = list() |
147 | | - feedback += "You sense..." |
148 | | - for(var/d in dirs) |
149 | | - feedback += "[capitalize(dir2text(text2num(d)))]:" |
150 | | - for(var/dst in dirs[d]) |
151 | | - feedback += "[dirs[d][dst]] psionic signature\s [dst]." |
| 93 | +// /datum/psionic_power/coercion/psiping |
| 94 | +// name = "Psi-ping" |
| 95 | +// cost = 50 |
| 96 | +// heat = 20 |
| 97 | +// cooldown = 20 SECONDS |
| 98 | +// min_rank = PSI_RANK_OPERANT |
| 99 | +// icon_state = "coe_psiping" |
| 100 | +// use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click on yourself with an empty hand to detect nearby psionic signatures." |
| 101 | +// var/searching = FALSE |
| 102 | + |
| 103 | +// /datum/psionic_power/coercion/psiping/invoke(mob/living/user, mob/living/target, proximity, parameters) |
| 104 | +// if(user != target || searching) |
| 105 | +// return FALSE |
| 106 | +// . = ..() |
| 107 | +// if(.) |
| 108 | +// to_chat(user, span_notice("You take a moment to tune into the local Nlom...")) |
| 109 | +// searching = TRUE |
| 110 | +// if(!do_after(user, 3 SECONDS, user)) |
| 111 | +// searching = FALSE |
| 112 | +// return FALSE |
| 113 | +// searching = FALSE |
| 114 | +// var/list/dirs = list() |
| 115 | +// for(var/mob/living/L in GLOB.mob_living_list) |
| 116 | +// var/turf/T = get_turf(L) |
| 117 | +// if(!T || L == user || L.stat == DEAD || issilicon(L) || !(L.psi || isdarkspawn(L)) || (L.z != user.z)) |
| 118 | +// continue |
| 119 | +// /* |
| 120 | +// var/image/ping_image = image(icon = 'icons/effects/effects.dmi', icon_state = "sonar_ping", loc = user) |
| 121 | +// ping_image.plane = LIGHTING_LAYER+1 |
| 122 | +// ping_image.layer = LIGHTING_LAYER+1 |
| 123 | +// ping_image.pixel_x = (T.x - user.x) * 32 |
| 124 | +// ping_image.pixel_y = (T.y - user.y) * 32 |
| 125 | +// user << ping_image |
| 126 | +// addtimer(CALLBACK(GLOBAL_PROC, /proc/qdel, ping_image), 8) |
| 127 | +// */ |
| 128 | +// var/direction = num2text(angle2dir(Get_Angle(user, L))) |
| 129 | +// var/dist |
| 130 | +// if(text2num(direction)) |
| 131 | +// switch(get_dist(user, L)) |
| 132 | +// if(0 to 10) |
| 133 | +// dist = "very close" |
| 134 | +// if(10 to 20) |
| 135 | +// dist = "close" |
| 136 | +// if(20 to 30) |
| 137 | +// dist = "a little ways away" |
| 138 | +// if(30 to 40) |
| 139 | +// dist = "farther away" |
| 140 | +// else |
| 141 | +// dist = "far away" |
| 142 | +// else |
| 143 | +// dist = "on top of you" |
| 144 | +// LAZYINITLIST(dirs[direction]) |
| 145 | +// dirs[direction][dist] += 1 |
| 146 | +// if(length(dirs)) |
| 147 | +// var/list/feedback = list() |
| 148 | +// feedback += "You sense..." |
| 149 | +// for(var/d in dirs) |
| 150 | +// feedback += "[capitalize(dir2text(text2num(d)))]:" |
| 151 | +// for(var/dst in dirs[d]) |
| 152 | +// feedback += "[dirs[d][dst]] psionic signature\s [dst]." |
152 | 153 |
|
153 | | - to_chat(user, span_notice(feedback.Join("<br>"))) |
154 | | - else |
155 | | - to_chat(user, span_notice("You detect no psionic signatures but your own.")) |
156 | | - return TRUE |
| 154 | +// to_chat(user, span_notice(feedback.Join("<br>"))) |
| 155 | +// else |
| 156 | +// to_chat(user, span_notice("You detect no psionic signatures but your own.")) |
| 157 | +// return TRUE |
157 | 158 |
|
158 | 159 | /datum/psionic_power/coercion/agony |
159 | 160 | name = "Agony" |
|
162 | 163 | cooldown = 2 SECONDS |
163 | 164 | min_rank = PSI_RANK_OPERANT |
164 | 165 | icon_state = "coe_agony" |
165 | | - use_description = "Activate the power with z, attack someone while in combat mode to deal minor stamina damage. Higher psi levels augment the damage done." |
| 166 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, attack someone while in combat mode to deal minor stamina damage. Higher psi levels augment the damage done." |
166 | 167 |
|
167 | 168 | /datum/psionic_power/coercion/agony/invoke(mob/living/user, mob/living/target, proximity, parameters) |
168 | 169 | if(!istype(target) || !proximity || user == target || !user.combat_mode) |
|
182 | 183 | cooldown = 10 SECONDS |
183 | 184 | min_rank = PSI_RANK_MASTER |
184 | 185 | icon_state = "coe_spasm" |
185 | | - use_description = "Activate the power with z, then target a creature to use a ranged attack that may rip the weapons away from the target." |
| 186 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then target a creature to use a ranged attack that may rip the weapons away from the target." |
186 | 187 |
|
187 | 188 | /datum/psionic_power/coercion/spasm/invoke(mob/living/user, mob/living/carbon/human/target, proximity, parameters) |
188 | 189 | if(!istype(target) || user == target || !user.combat_mode) |
|
206 | 207 | cooldown = 8 SECONDS |
207 | 208 | min_rank = PSI_RANK_MASTER |
208 | 209 | icon_state = "coe_focus" |
209 | | - use_description = "Activate the power with z, then click on someone in order to cure ailments of the mind." |
| 210 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click on someone in order to cure ailments of the mind." |
210 | 211 |
|
211 | 212 | /datum/psionic_power/coercion/focus/invoke(mob/living/user, mob/living/target, proximity, parameters) |
212 | 213 | if(!istype(target) || !proximity || user == target) |
|
245 | 246 | cooldown = 25 SECONDS //It should take a WHILE to be able to use this again. |
246 | 247 | min_rank = PSI_RANK_MASTER |
247 | 248 | icon_state = "coe_mindread" |
248 | | - use_description = "Activate the power with z, then click on someone in melee range to attempt to read a surface level thought." |
| 249 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click on someone in melee range to attempt to read a surface level thought." |
249 | 250 |
|
250 | 251 | /datum/psionic_power/coercion/mindread/invoke(mob/living/user, mob/living/target, proximity, parameters) |
251 | 252 | if(!istype(target) || target == user || !proximity) |
|
282 | 283 | cooldown = 10 SECONDS |
283 | 284 | min_rank = PSI_RANK_GRANDMASTER |
284 | 285 | icon_state = "coe_blindstrike" |
285 | | - use_description = "Activate the power with z, then click anywhere to use a radial attack that blinds, deafens and disorients everyone near you." |
| 286 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click anywhere to use a radial attack that blinds, deafens and disorients everyone near you." |
286 | 287 |
|
287 | 288 | /datum/psionic_power/coercion/blindstrike/invoke(mob/living/user, mob/living/target, proximity, parameters) |
288 | 289 | . = ..() |
|
306 | 307 | cooldown = 10 SECONDS |
307 | 308 | min_rank = PSI_RANK_PARAMOUNT |
308 | 309 | icon_state = "coe_disarm" |
309 | | - use_description = "Activate the power with z, then click your target with combat mode to Psionically rip their arms off." |
| 310 | + use_description = "Activate the power with the 'use' key (initially bound to Z) in an empty hand, then click your target with combat mode to Psionically rip their arms off." |
310 | 311 |
|
311 | 312 | /datum/psionic_power/coercion/dis_arm/invoke(mob/living/user, mob/living/target, proximity, parameters) |
312 | 313 | if(!user.combat_mode || user == target) |
|
0 commit comments