mirror of
https://github.com/KabKebab/GS13.git
synced 2026-07-14 09:28:26 +01:00
Merge pull request #666 from Jay-Sparrow/Dynamic2
Dynamic tweaks - and bugfixes
This commit is contained in:
@@ -27,7 +27,7 @@
|
||||
var/list/exclusive_roles = list()
|
||||
/// If set, there needs to be a certain amount of players doing those roles (among the players who won't be drafted) for the rule to be drafted IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
|
||||
var/list/enemy_roles = list()
|
||||
/// If enemy_roles was set, this is the amount of enemy job workers needed per GLOB.dynamic_chaos_level range (0-0.5, 0.5-1.0) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
|
||||
/// If enemy_roles was set, this is the amount of enemy job workers needed per threat_level range (0-10,10-20,etc) IMPORTANT: DOES NOT WORK ON ROUNDSTART RULESETS.
|
||||
var/required_enemies = list(1,1,0,0,0,0,0,0,0,0)
|
||||
/// The rule needs this many candidates (post-trimming) to be executed (example: Cult needs 4 players at round start)
|
||||
var/required_candidates = 0
|
||||
|
||||
@@ -26,9 +26,8 @@
|
||||
continue // Dead players cannot count as opponents
|
||||
if (M.mind && M.mind.assigned_role && (M.mind.assigned_role in enemy_roles) && (!(M in candidates) || (M.mind.assigned_role in restricted_roles)))
|
||||
job_check++ // Checking for "enemies" (such as sec officers). To be counters, they must either not be candidates to that rule, or have a job that restricts them from it
|
||||
|
||||
var/chaos = min(max(round(GLOB.dynamic_chaos_level * 2), 0), 9)
|
||||
if (job_check < required_enemies[chaos])
|
||||
var/threat = max(min(round(mode.threat_level/10),9),1) //min() to stop index errors at 100 threat //Max to stop breaking at 0 threat.
|
||||
if (job_check < required_enemies[threat])
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
@@ -104,7 +103,7 @@
|
||||
typepath = /datum/round_event/pirates
|
||||
antag_flag = ROLE_TRAITOR
|
||||
enemy_roles = list("AI","Security Officer","Head of Security","Captain")
|
||||
required_enemies = list(2,2,2,2,1,1,1,1,0,0)
|
||||
required_enemies = list(3,3,2,2,2,1,1,1,1,0)
|
||||
weight = 3
|
||||
cost = 0
|
||||
earliest_start = 50 MINUTES
|
||||
@@ -120,82 +119,6 @@
|
||||
return FALSE
|
||||
return ..()
|
||||
|
||||
/* //not currently functional
|
||||
//////////////////////////////////////////
|
||||
// //
|
||||
// LEWD //
|
||||
// //
|
||||
//////////////////////////////////////////
|
||||
|
||||
//Might move this to midround antags, but I don't want it messing with the weights of regular antags right now
|
||||
//Only drops one horny antag at a time anyways
|
||||
|
||||
/datum/dynamic_ruleset/event/lewd
|
||||
name = "Horny Traitor"
|
||||
//config_tag = "pirates"
|
||||
//typepath = /datum/round_event/pirates
|
||||
antag_flag = ROLE_LEWD_TRAITOR
|
||||
antag_datum = /datum/antagonist/traitor/lewd
|
||||
enemy_roles = list()
|
||||
required_enemies = list(0,0,0,0,0,0,0,0,0,0)
|
||||
protected_roles = list("AI","Cyborg")
|
||||
restricted_roles = list("Cyborg","AI")
|
||||
weight = 300 //JAY CHANGE THIS WHEN YOU ARE DONE TESTING
|
||||
cost = 0
|
||||
earliest_start = 50 MINUTES
|
||||
//blocking_rules = list(/datum/dynamic_ruleset/roundstart/nuclear,/datum/dynamic_ruleset/midround/from_ghosts/nuclear)
|
||||
requirements = list(10,10,10,10,10,10,10,10,10,10)
|
||||
high_population_requirement = 10
|
||||
occurances_max = 2
|
||||
chaos_min = 0
|
||||
chaos_max = 2.5
|
||||
minimum_required_age = 7
|
||||
admin_required = TRUE
|
||||
var/list/mob/living/carbon/human/lewd_candidates = list()
|
||||
var/list/mob/living/carbon/human/targets = list()
|
||||
var/num_lewd_traitors = 1 //The number of lewds to drop in
|
||||
var/numTraitors = 0 //Variable for later. Don't touch.
|
||||
earliest_start = 0 MINUTES
|
||||
|
||||
|
||||
/datum/dynamic_ruleset/event/lewd/ready(forced = FALSE)
|
||||
//to_chat(GLOB.admins, "makeLewd_traitors called")
|
||||
//var/datum/game_mode/traitor/lewd/temp = new
|
||||
|
||||
//if(CONFIG_GET(flag/protect_roles_from_antagonist))
|
||||
//continue
|
||||
|
||||
//if(CONFIG_GET(flag/protect_assistant_from_antagonist))
|
||||
//continue
|
||||
|
||||
//var/mob/living/carbon/human/T = null
|
||||
|
||||
for(var/mob/living/carbon/human/target in CURRENT_LIVING_PLAYERS)
|
||||
if(target.client.prefs.noncon)
|
||||
if(!(target.job in restricted_roles))
|
||||
targets += target
|
||||
|
||||
if(lewd_candidates.len)
|
||||
numTraitors = min(candidates.len, targets.len, num_lewd_traitors)
|
||||
if(numTraitors == 0)
|
||||
to_chat(GLOB.admins, "No lewd traitors created. Are there any valid targets?")
|
||||
return 0
|
||||
return ..()
|
||||
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
/datum/dynamic_ruleset/event/lewd/execute(forced = FALSE)
|
||||
var/mob/living/carbon/human/H = null
|
||||
if(numTraitors)
|
||||
for(var/i = 0, i<numTraitors, i++)
|
||||
H = pick(lewd_candidates)
|
||||
H.mind.make_LewdTraitor()
|
||||
lewd_candidates.Remove(H)
|
||||
return TRUE
|
||||
return FALSE
|
||||
*/
|
||||
//////////////////////////////////////////////
|
||||
// //
|
||||
// SPIDERS //
|
||||
@@ -207,8 +130,8 @@
|
||||
//config_tag = "spiders"
|
||||
typepath = /datum/round_event/spider_infestation
|
||||
enemy_roles = list("AI","Security Officer","Head of Security","Captain")
|
||||
required_enemies = list(2,2,1,1,0,0,0,0,0,0)
|
||||
weight = 3
|
||||
required_enemies = list(3,2,2,2,2,1,1,1,0,0)
|
||||
weight = 2
|
||||
cost = 5
|
||||
requirements = list(101,20,15,10,10,10,10,10,10,10)
|
||||
high_population_requirement = 15
|
||||
@@ -228,7 +151,7 @@
|
||||
//config_tag = "ventclog"
|
||||
typepath = /datum/round_event/vent_clog
|
||||
enemy_roles = list("Chemist","Medical Doctor","Chief Medical Officer")
|
||||
required_enemies = list(1,1,1,1,1,1,0,0,0,0)
|
||||
required_enemies = list(2,2,2,2,2,2,2,2,2,0)
|
||||
cost = 2
|
||||
weight = 1
|
||||
repeatable_weight_decrease = 1
|
||||
@@ -249,7 +172,7 @@
|
||||
else if(mode.threat_level > 15 && mode.threat > 15 && prob(30))
|
||||
name = "Clogged Vents: Catastrophic"
|
||||
cost = 15
|
||||
required_enemies = list(4,4,4,3,3,3,2,1,1,0)
|
||||
required_enemies = list(4,4,4,3,3,3,2,1,1,1)
|
||||
typepath = /datum/round_event/vent_clog/catastrophic
|
||||
chaos_min = 1.8
|
||||
else
|
||||
@@ -293,12 +216,12 @@
|
||||
//config_tag = "meteor_wave"
|
||||
typepath = /datum/round_event/meteor_wave
|
||||
enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Captain","Cyborg")
|
||||
required_enemies = list(2,2,2,2,2,1,1,1,0,0)
|
||||
required_enemies = list(2,2,2,2,2,2,2,2,1,1)
|
||||
cost = 0
|
||||
weight = 2
|
||||
earliest_start = 45 MINUTES
|
||||
repeatable_weight_decrease = 2
|
||||
requirements = list(101,101,15,15,15,15,15,15,10,10)
|
||||
requirements = list(101,101,25,25,20,20,15,15,10,10)
|
||||
high_population_requirement = 30
|
||||
//property_weights = list("extended" = -2)
|
||||
occurances_max = 2
|
||||
@@ -315,14 +238,14 @@
|
||||
name = "Meteor Wave: Catastrophic"
|
||||
cost = 10
|
||||
typepath = /datum/round_event/meteor_wave/catastrophic
|
||||
required_enemies = list(3,3,3,3,3,2,2,1,1,0)
|
||||
required_enemies = list(3,3,3,3,3,2,2,2,2,2)
|
||||
requirements = list(101,101,40,30,30,30,30,30,30,30)
|
||||
chaos_min = 2.0
|
||||
else
|
||||
name = "Meteor Wave: Normal"
|
||||
cost = 5
|
||||
typepath = /datum/round_event/meteor_wave
|
||||
chaos_min = 1.2
|
||||
chaos_min = 1.5
|
||||
required_enemies = list(2,2,2,2,1,1,1,1,0,0)
|
||||
return ..()
|
||||
|
||||
@@ -338,11 +261,11 @@
|
||||
typepath = /datum/round_event/anomaly/anomaly_bluespace
|
||||
enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain")
|
||||
required_enemies = list(2,2,2,1,1,1,1,1,1,0)
|
||||
weight = 3
|
||||
weight = 2
|
||||
earliest_start = 20 MINUTES
|
||||
repeatable_weight_decrease = 2
|
||||
cost = 0
|
||||
requirements = list(101,101,5,5,5,5,5,5,5,5)
|
||||
requirements = list(101,101,10,5,5,5,5,5,5,5)
|
||||
high_population_requirement = 5
|
||||
repeatable = TRUE
|
||||
//property_weights = list("extended" = 1)
|
||||
@@ -358,8 +281,8 @@
|
||||
weight = 3
|
||||
earliest_start = 20 MINUTES
|
||||
repeatable_weight_decrease = 2
|
||||
cost = 3
|
||||
requirements = list(101,5,5,5,5,5,5,5,5,5)
|
||||
cost = 2
|
||||
requirements = list(101,101,10,5,5,5,5,5,5,5)
|
||||
high_population_requirement = 10
|
||||
repeatable = TRUE
|
||||
//property_weights = list("extended" = 1)
|
||||
@@ -370,10 +293,10 @@
|
||||
name = "Anomaly: Gravitational"
|
||||
//config_tag = "anomaly_gravitational"
|
||||
typepath = /datum/round_event/anomaly/anomaly_grav
|
||||
weight = 4
|
||||
weight = 3
|
||||
repeatable_weight_decrease = 1
|
||||
cost = 0
|
||||
requirements = list(5,4,3,2,1,0,0,0,0,0)
|
||||
requirements = list(101,4,3,2,1,0,0,0,0,0)
|
||||
high_population_requirement = 5
|
||||
repeatable = TRUE
|
||||
//property_weights = list("extended" = 1)
|
||||
@@ -407,7 +330,7 @@
|
||||
cost = 0
|
||||
enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg")
|
||||
required_enemies = list(3,3,3,2,2,2,2,2,2,0)
|
||||
requirements = list(101,101,10,10,10,10,10,10,10,10)
|
||||
requirements = list(101,101,101,10,10,10,10,10,10,10)
|
||||
high_population_requirement = 10
|
||||
repeatable = TRUE
|
||||
//property_weights = list("extended" = 1)
|
||||
@@ -427,7 +350,7 @@
|
||||
required_enemies = list(0,0,0,0,0,0,0,0,0,0)
|
||||
weight = 0 //This is changed in nuclearbomb.dm
|
||||
occurances_max = 1
|
||||
requirements = list(10,5,0,0,0,0,0,0,0,0) //SECURE THAT DISK
|
||||
requirements = list(10,10,10,10,10,10,10,10,10,10) //SECURE THAT DISK
|
||||
cost = 50
|
||||
chaos_min = 0.5
|
||||
|
||||
@@ -457,7 +380,7 @@
|
||||
repeatable_weight_decrease = 1
|
||||
cost = 0
|
||||
enemy_roles = list("Chief Engineer","Station Engineer","Atmospheric Technician","Research Director","Scientist","Captain","Cyborg")
|
||||
required_enemies = list(2,1,1,1,1,1,0,0,0,0)
|
||||
required_enemies = list(3,2,2,2,1,1,1,0,0,0)
|
||||
requirements = list(101,25,20,15,15,15,10,10,10,10)
|
||||
high_population_requirement = 10
|
||||
repeatable = TRUE
|
||||
@@ -469,10 +392,10 @@
|
||||
name = "Carp Migration"
|
||||
//config_tag = "carp_migration"
|
||||
typepath = /datum/round_event/carp_migration
|
||||
weight = 5
|
||||
repeatable_weight_decrease = 3
|
||||
weight = 4
|
||||
repeatable_weight_decrease = 2
|
||||
cost = 4
|
||||
requirements = list(101,5,5,1,1,1,1,1,1,1)
|
||||
requirements = list(101,5,5,5,5,1,1,1,1,1)
|
||||
high_population_requirement = 10
|
||||
earliest_start = 10 MINUTES
|
||||
repeatable = TRUE
|
||||
@@ -563,8 +486,8 @@
|
||||
weight = 2
|
||||
earliest_start = 30 MINUTES
|
||||
repeatable_weight_decrease = 1
|
||||
enemy_roles = list("Medical Doctor","Chief Medical Officer")
|
||||
required_enemies = list(2,2,2,2,2,2,2,2,2,0)
|
||||
enemy_roles = list("Medical Doctor","Chief Medical Officer", "Chemist")
|
||||
required_enemies = list(3,3,2,2,2,2,2,2,2,1)
|
||||
requirements = list(101,101,101,10,5,5,5,5,5,5)
|
||||
high_population_requirement = 5
|
||||
repeatable = TRUE
|
||||
@@ -579,7 +502,7 @@
|
||||
weight = 2
|
||||
repeatable_weight_decrease = 2
|
||||
enemy_roles = list("Chemist","Chief Medical Officer","Geneticist","Medical Doctor","AI","Captain")
|
||||
required_enemies = list(1,1,1,1,1,1,1,1,1,0)
|
||||
required_enemies = list(2,2,2,2,1,1,1,1,1,0)
|
||||
requirements = list(5,5,5,5,5,5,5,5,5,5)
|
||||
high_population_requirement = 5
|
||||
//property_weights = list("extended" = 1,"chaos" = 1)
|
||||
@@ -592,13 +515,13 @@
|
||||
cost = 0
|
||||
weight = 1
|
||||
enemy_roles = list("Head of Security","Security Officer","AI","Captain","Shaft Miner")
|
||||
required_enemies = list(2,2,2,2,2,2,2,2,2,0)
|
||||
required_enemies = list(2,2,2,2,2,2,2,2,2,2)
|
||||
requirements = list(101,101,40,35,30,30,30,30,25,20)
|
||||
high_population_requirement = 30
|
||||
earliest_start = 40 MINUTES
|
||||
//property_weights = list("teamwork" = 1,"chaos" = 1, "extended" = -1)
|
||||
occurances_max = 1
|
||||
chaos_min = 1.0
|
||||
chaos_min = 1.3
|
||||
|
||||
|
||||
/datum/dynamic_ruleset/event/wormholes
|
||||
@@ -624,12 +547,12 @@
|
||||
weight = 1
|
||||
earliest_start = 40 MINUTES
|
||||
enemy_roles = list("AI","Security Officer","Head of Security","Captain","Station Engineer","Atmos Technician","Chief Engineer")
|
||||
required_enemies = list(4,4,4,4,3,3,3,3,2,0)
|
||||
required_enemies = list(4,4,4,4,3,3,3,3,2,2)
|
||||
requirements = list(101,101,50,40,40,40,40,35,30,30)
|
||||
high_population_requirement = 5
|
||||
//property_weights = list("extended" = -2)
|
||||
occurances_max = 1
|
||||
chaos_min = 2.0
|
||||
chaos_min = 1.5
|
||||
|
||||
/datum/dynamic_ruleset/event/sentient_disease
|
||||
name = "Sentient Disease"
|
||||
@@ -640,7 +563,7 @@
|
||||
required_candidates = 1
|
||||
weight = 4
|
||||
cost = -5
|
||||
requirements = list(101,30,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"!
|
||||
requirements = list(101,101,20,20,15,10,10,10,10,5) // yes, it can even happen in "extended"!
|
||||
//property_weights = list("story_potential" = 1, "extended" = 1, "valid" = -2)
|
||||
high_population_requirement = 5
|
||||
occurances_max = 1
|
||||
@@ -655,7 +578,7 @@
|
||||
required_candidates = 1
|
||||
weight = 4
|
||||
cost = 5
|
||||
requirements = list(101,30,27,24,21,18,15,15,10,10)
|
||||
requirements = list(101,101,23,21,18,18,15,15,10,10)
|
||||
high_population_requirement = 15
|
||||
//property_weights = list("story_potential" = -2, "extended" = -1)
|
||||
occurances_max = 1 //Skyrat change.
|
||||
@@ -667,7 +590,7 @@
|
||||
typepath = /datum/round_event/immovable_rod
|
||||
enemy_roles = list("Research Director","Chief Engineer","Station Engineer","Captain","Chaplain","AI")
|
||||
required_enemies = list(2,2,2,2,2,2,1,1,1,0)
|
||||
requirements = list(101,101,18,16,14,12,10,8,6,6)
|
||||
requirements = list(101,101,20,18,16,14,12,10,8,6)
|
||||
high_population_requirement = 15
|
||||
cost = 0
|
||||
occurances_max = 2
|
||||
@@ -741,29 +664,16 @@
|
||||
repeatable = TRUE
|
||||
occurances_max = 2
|
||||
|
||||
/datum/dynamic_ruleset/event/disease_outbreak/execute() //I do not know why this is necessary
|
||||
var/datum/round_event_control/E = locate(/datum/round_event_control/disease_outbreak) in SSevents.control
|
||||
var/datum/round_event/event = E.runEvent() //But it is.
|
||||
event.announceWhen = -1 //So it isn't double announced.
|
||||
return ..()
|
||||
|
||||
/datum/dynamic_ruleset/event/falsealarm //I THINK IT WORKS
|
||||
/datum/dynamic_ruleset/event/falsealarm
|
||||
name = "False Alarm"
|
||||
controller = /datum/round_event_control/falsealarm
|
||||
typepath = /datum/round_event/falsealarm
|
||||
requirements = list(0,0,0,0,0,0,0,0,0,0)
|
||||
requirements = list(5,5,5,5,5,5,5,5,5,5) //Tell me lieeeess
|
||||
high_population_requirement = 0
|
||||
weight = 5
|
||||
repeatable = TRUE
|
||||
occurances_max = 5
|
||||
|
||||
///datum/dynamic_ruleset/event/falsealarm/execute() //I do not know why this is necessary
|
||||
//var/datum/round_event_control/E = locate(/datum/round_event_control/falsealarm) in SSevents.control
|
||||
//var/datum/round_event/event = E.runEvent()
|
||||
//event.announceWhen = -1 //So it isn't double announced.
|
||||
//E.runEvent()
|
||||
//return ..()
|
||||
|
||||
/datum/dynamic_ruleset/event/grid_check
|
||||
name = "Grid Check"
|
||||
typepath = /datum/round_event/grid_check
|
||||
@@ -801,7 +711,7 @@
|
||||
typepath = /datum/round_event/grey_tide
|
||||
enemy_roles = list("Chief Engineer","Station Engineer","Captain","Atmospheric Technician","AI","Cyborg")
|
||||
required_enemies = list(3,2,2,2,2,2,1,1,1,0)
|
||||
requirements = list(101,101,5,5,5,5,5,5,5,5)
|
||||
requirements = list(101,101,101,5,5,5,5,5,5,5)
|
||||
high_population_requirement = 0
|
||||
repeatable = TRUE
|
||||
weight = 4
|
||||
@@ -813,7 +723,8 @@
|
||||
typepath = /datum/round_event/ghost_role/sentience
|
||||
requirements = list(101,101,0,0,0,0,0,0,0,0)
|
||||
high_population_requirement = 0
|
||||
weight = 1
|
||||
weight = 5
|
||||
repeatable_weight_decrease = 1
|
||||
|
||||
/datum/dynamic_ruleset/event/shuttle_loan
|
||||
name = "Shuttle Loan"
|
||||
@@ -844,8 +755,8 @@
|
||||
/datum/dynamic_ruleset/event/spontaneous_appendicitis
|
||||
name = "Spontaneous Appendicitis"
|
||||
typepath = /datum/round_event/spontaneous_appendicitis
|
||||
enemy_roles = list("Medical Doctor","Chief Medical Officer")
|
||||
required_enemies = list(2,2,1,1,1,1,1,1,1,0)
|
||||
enemy_roles = list("Medical Doctor","Chief Medical Officer","Roboticist")
|
||||
required_enemies = list(2,2,2,2,2,2,2,1,1,1)
|
||||
requirements = list(5,5,5,5,5,5,5,5,0,0)
|
||||
high_population_requirement = 5
|
||||
weight = 5
|
||||
|
||||
@@ -282,8 +282,8 @@
|
||||
antag_flag = ROLE_LEWD_TRAITOR
|
||||
antag_datum = /datum/antagonist/traitor/lewd
|
||||
//minimum_required_age = 7
|
||||
protected_roles = list("AI","Cyborg")
|
||||
restricted_roles = list("Cyborg","AI")
|
||||
protected_roles = list("AI","Cyborg", "Positronic Brain")
|
||||
restricted_roles = list("Cyborg","AI", "Positronic Brain")
|
||||
required_candidates = 1
|
||||
weight = 2
|
||||
cost = 0
|
||||
|
||||
@@ -16,7 +16,7 @@
|
||||
required_candidates = 1
|
||||
weight = 5
|
||||
cost = 10
|
||||
requirements = list(101,40,30,25,20,20,15,15,15,15)
|
||||
requirements = list(101,101,30,25,20,20,15,15,15,15)
|
||||
high_population_requirement = 10
|
||||
var/autotraitor_cooldown = 450 // 15 minutes (ticks once per 2 sec)
|
||||
chaos_min = 2.5
|
||||
@@ -31,9 +31,9 @@
|
||||
//protected_roles = list("Security Officer", "Warden", "Detective", "Head of Security", "Captain", "Head of Personnel", "Chief Engineer", "Chief Medical Officer", "Research Director", "Cyborg")
|
||||
restricted_roles = list("Cyborg")
|
||||
//required_candidates = 1
|
||||
//weight = 5
|
||||
weight = 5
|
||||
cost = 0
|
||||
requirements = list(101,25,25,20,20,15,15,10,10,5)
|
||||
requirements = list(101,25,25,20,20,15,15,10,10,10)
|
||||
high_population_requirement = 10
|
||||
//var/autotraitor_cooldown = 450 // 15 minutes (ticks once per 2 sec)
|
||||
chaos_min = 2.0
|
||||
@@ -76,9 +76,9 @@
|
||||
protected_roles = list("AI","Cyborg")
|
||||
restricted_roles = list("Cyborg","AI")
|
||||
required_candidates = 1
|
||||
weight = 3
|
||||
weight = 2
|
||||
cost = 0
|
||||
requirements = list(101,10,10,10,10,10,10,10,10,10)
|
||||
requirements = list(10,10,10,10,10,10,10,10,10,10)
|
||||
high_population_requirement = 10
|
||||
chaos_min = 0.1
|
||||
chaos_max = 2.5
|
||||
@@ -115,17 +115,6 @@
|
||||
M.mind.restricted_roles = restricted_roles
|
||||
return TRUE
|
||||
|
||||
/*
|
||||
/datum/dynamic_ruleset/roundstart/traitor/lewd/execute()
|
||||
var/datum/mind/M = null
|
||||
if(numTraitors)
|
||||
for(var/i = 0, i<numTraitors, i++)
|
||||
M = pick(assigned)
|
||||
assigned.Remove(M)
|
||||
M.make_LewdTraitor()
|
||||
return TRUE
|
||||
return FALSE
|
||||
*/
|
||||
|
||||
//////////////////////////////////////////
|
||||
// //
|
||||
|
||||
Reference in New Issue
Block a user