/datum/round_event_control/wizard/greentext //Gotta have it! name = "Greentext" weight = 4 typepath = /datum/round_event/wizard/greentext/ max_occurrences = 1 earliest_start = 0 /datum/round_event/wizard/greentext/start() var/list/holder_canadates = player_list.Copy() for(var/mob/M in holder_canadates) if(!ishuman(M)) holder_canadates -= M if(!holder_canadates) //Very unlikely, but just in case return 0 var/mob/living/carbon/human/H = pick(holder_canadates) new /obj/item/weapon/greentext(H.loc) H << "The mythical greentext appear at your feet! Pick it up if you dare..." /obj/item/weapon/greentext name = "greentext" desc = "No one knows what this massive tome does, but it feels desirable all the same..." w_class = 4 icon = 'icons/obj/wizard.dmi' icon_state = "greentext" var/mob/living/last_holder var/mob/living/new_holder var/list/color_altered_mobs = list() burn_state = FIRE_PROOF var/quiet = FALSE /obj/item/weapon/greentext/New() ..() poi_list |= src /obj/item/weapon/greentext/equipped(mob/living/user as mob) user << "So long as you leave this place with greentext in hand you know will be happy..." if(user.mind && user.mind.objectives.len > 0) user << "... so long as you still perform your other objectives that is!" new_holder = user if(!last_holder) last_holder = user if(!(user in color_altered_mobs)) color_altered_mobs += user user.color = "#00FF00" START_PROCESSING(SSobj, src) ..() /obj/item/weapon/greentext/dropped(mob/living/user as mob) if(user in color_altered_mobs) user << "A sudden wave of failure washes over you..." user.color = "#FF0000" //ya blew it last_holder = null new_holder = null STOP_PROCESSING(SSobj, src) ..() /obj/item/weapon/greentext/process() if(new_holder && new_holder.z == ZLEVEL_CENTCOM)//you're winner! new_holder << "At last it feels like victory is assured!" if(!(new_holder in ticker.mode.traitors)) ticker.mode.traitors += new_holder.mind new_holder.mind.special_role = "winner" var/datum/objective/O = new /datum/objective("Succeed") O.completed = 1 //YES! O.owner = new_holder.mind new_holder.mind.objectives += O new_holder.attack_log += "\[[time_stamp()]\] Won with greentext!!!" color_altered_mobs -= new_holder burn_state = ON_FIRE qdel(src) if(last_holder && last_holder != new_holder) //Somehow it was swiped without ever getting dropped last_holder << "A sudden wave of failure washes over you..." last_holder.color = "#FF0000" last_holder = new_holder //long live the king /obj/item/weapon/greentext/Destroy(force) if((burn_state != ON_FIRE) && (!force)) return QDEL_HINT_LETMELIVE . = ..() poi_list.Remove(src) for(var/mob/M in mob_list) var/message = "A dark temptation has passed from this world" if(M in color_altered_mobs) message += " and you're finally able to forgive yourself" M.color = initial(M.color) message += "..." // can't skip the mob check as it also does the decolouring if(!quiet) M << message /obj/item/weapon/greentext/quiet quiet = TRUE