diff --git a/datafiles/main/chapters/1.JSON b/datafiles/main/chapters/1.JSON index 4c9de66a28..34f0bb6f4f 100644 --- a/datafiles/main/chapters/1.JSON +++ b/datafiles/main/chapters/1.JSON @@ -11,8 +11,8 @@ "icon_name": "da", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 10, // 1-10 - "purity": 8, // 1-10 - "stability": 10, // 1-10 + "purity": 10, // 1-10 + "stability": 96, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/10.JSON b/datafiles/main/chapters/10.JSON index 41ab328c9b..bafb985a30 100644 --- a/datafiles/main/chapters/10.JSON +++ b/datafiles/main/chapters/10.JSON @@ -11,8 +11,8 @@ "icon_name": "bt", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 3, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 - "purity": 7, // 1-10 - "stability": 10, // 1-10 + "purity": 8, // 1-10 + "stability": 96, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/11.JSON b/datafiles/main/chapters/11.JSON index b605154bb7..fe0b8083e0 100644 --- a/datafiles/main/chapters/11.JSON +++ b/datafiles/main/chapters/11.JSON @@ -12,7 +12,7 @@ "fleet_type": 2, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 10, // 1-10 - "stability": 10, // 1-10 + "stability": 99, // 1-99 "cooperation": 2, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/12.JSON b/datafiles/main/chapters/12.JSON index c8b25cd6bf..75b31fd4fc 100644 --- a/datafiles/main/chapters/12.JSON +++ b/datafiles/main/chapters/12.JSON @@ -12,7 +12,7 @@ "fleet_type": 2, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 10, // 1-10 - "stability": 6, // 1-10 + "stability": 96, // 1-99 "cooperation": 7, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/13.JSON b/datafiles/main/chapters/13.JSON index 3ef79dbbff..a82b06ee96 100644 --- a/datafiles/main/chapters/13.JSON +++ b/datafiles/main/chapters/13.JSON @@ -11,8 +11,8 @@ "icon_name": "cf", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 2, // 1-10 - "purity": 7, // 1-10 - "stability": 10, // 1-10 + "purity": 8, // 1-10 + "stability": 96, // 1-99 "cooperation": 8, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/14.JSON b/datafiles/main/chapters/14.JSON index e00df02019..db82d1da1d 100644 --- a/datafiles/main/chapters/14.JSON +++ b/datafiles/main/chapters/14.JSON @@ -12,7 +12,7 @@ "fleet_type": 3, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 1, // 1-10 "purity": 9, // 1-10 - "stability": 9, // 1-10 + "stability": 90, // 1-99 "cooperation": 1, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/15.JSON b/datafiles/main/chapters/15.JSON index b2c60b5773..bfd44e2137 100644 --- a/datafiles/main/chapters/15.JSON +++ b/datafiles/main/chapters/15.JSON @@ -12,7 +12,7 @@ "fleet_type": 2, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 8, // 1-10 - "stability": 4, // 1-10 + "stability": 92, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 0, // 1 = true @@ -39,7 +39,7 @@ "", // leave the first entry blank for now "Splintered", "Suspicious", - "", + "Black Rage", "", "", "", diff --git a/datafiles/main/chapters/16.JSON b/datafiles/main/chapters/16.JSON index 55e51930c7..b35a832ad7 100644 --- a/datafiles/main/chapters/16.JSON +++ b/datafiles/main/chapters/16.JSON @@ -11,8 +11,8 @@ "icon_name": "sd", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 2, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 2, // 1-10 - "purity": 10, // 1-10 - "stability": 2, // 1-10 + "purity": 9, // 1-10 + "stability": 76, // 1-99 "cooperation": 2, // 1-10 "homeworld_exists": 0, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/17.JSON b/datafiles/main/chapters/17.JSON index 2a7d9099e1..9bbd55f955 100644 --- a/datafiles/main/chapters/17.JSON +++ b/datafiles/main/chapters/17.JSON @@ -11,8 +11,8 @@ "icon_name": "am", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 - "purity": 10, // 1-10 - "stability": 10, // 1-10 + "purity": 9, // 1-10 + "stability": 96, // 1-99 "cooperation": 2, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/2.JSON b/datafiles/main/chapters/2.JSON index db573473d9..5f1d726b43 100644 --- a/datafiles/main/chapters/2.JSON +++ b/datafiles/main/chapters/2.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 10, // 1-10 - "stability": 8, // 1-10 + "stability": 96, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/3.JSON b/datafiles/main/chapters/3.JSON index d734a95c36..cd332c4366 100644 --- a/datafiles/main/chapters/3.JSON +++ b/datafiles/main/chapters/3.JSON @@ -11,8 +11,8 @@ "icon_name": "sw", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 10, // 1-10 - "purity": 8, // 1-10 - "stability": 5, // 1-10 + "purity": 9, // 1-10 + "stability": 94, // 1-99 "cooperation": 4, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/31.JSON b/datafiles/main/chapters/31.JSON index 3a73c63f65..beecc4d4d7 100644 --- a/datafiles/main/chapters/31.JSON +++ b/datafiles/main/chapters/31.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 10, // 1-10 - "stability": 10, // 1-10 + "stability": 99, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/32.JSON b/datafiles/main/chapters/32.JSON index 31d36a1f6a..c63b890d3c 100644 --- a/datafiles/main/chapters/32.JSON +++ b/datafiles/main/chapters/32.JSON @@ -11,8 +11,8 @@ "icon_name": "rs", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 1, // 1-10 - "purity": 6, // 1-10 - "stability": 4, // 1-10 + "purity": 10, // 1-10 + "stability": 86, // 1-99 "cooperation": 1, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/4.JSON b/datafiles/main/chapters/4.JSON index 534eb006f2..bb39adf144 100644 --- a/datafiles/main/chapters/4.JSON +++ b/datafiles/main/chapters/4.JSON @@ -11,8 +11,8 @@ "icon_name": "if", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 6, // 1-10 - "purity": 7, // 1-10 - "stability": 10, // 1-10 + "purity": 8, // 1-10 + "stability": 96, // 1-99 "cooperation": 8, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/5.JSON b/datafiles/main/chapters/5.JSON index be7b34ac97..35f4a60a36 100644 --- a/datafiles/main/chapters/5.JSON +++ b/datafiles/main/chapters/5.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 9, // 1-10 - "stability": 9, // 1-10 + "stability": 94, // 1-99 "cooperation": 7, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/6.JSON b/datafiles/main/chapters/6.JSON index 265c99f3ee..a5039659e5 100644 --- a/datafiles/main/chapters/6.JSON +++ b/datafiles/main/chapters/6.JSON @@ -11,8 +11,8 @@ "icon_name": "ih", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 - "purity": 8, // 1-10 - "stability": 8, // 1-10 + "purity": 10, // 1-10 + "stability": 96, // 1-99 "cooperation": 2, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/7.JSON b/datafiles/main/chapters/7.JSON index cdf6a59fdc..7ef9a130f7 100644 --- a/datafiles/main/chapters/7.JSON +++ b/datafiles/main/chapters/7.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 10, // 1-10 - "stability": 10, // 1-10 + "stability": 96, // 1-99 "cooperation": 10, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/datafiles/main/chapters/8.JSON b/datafiles/main/chapters/8.JSON index 8be0cef646..fcf1ae6c85 100644 --- a/datafiles/main/chapters/8.JSON +++ b/datafiles/main/chapters/8.JSON @@ -11,8 +11,8 @@ "icon_name": "sl", // ? dunno what this is used for yet but the icon breaks if you dont use it "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 2, // 1-10 - "purity": 8, // 1-10 - "stability": 8, // 1-10 + "purity": 9, // 1-10 + "stability": 95, // 1-99 "cooperation": 10, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 0, // 1 = true diff --git a/datafiles/main/chapters/9.JSON b/datafiles/main/chapters/9.JSON index 0848df911a..b114549f1f 100644 --- a/datafiles/main/chapters/9.JSON +++ b/datafiles/main/chapters/9.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 8, // 1-10 - "stability": 4, // 1-10 + "stability": 95, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true @@ -37,7 +37,7 @@ "disadvantages": [ "", "Splintered", - "", + "Black Rage", "", "", "", diff --git a/datafiles/main/chapters/template.JSON b/datafiles/main/chapters/template.JSON index 587311e60c..a1170806e1 100644 --- a/datafiles/main/chapters/template.JSON +++ b/datafiles/main/chapters/template.JSON @@ -12,7 +12,7 @@ "fleet_type": 1, // 1= Homeworld, 2 = Fleet based, 3 = Penitent "strength": 5, // 1-10 "purity": 5, // 1-10 - "stability": 5, // 1-10 + "stability": 50, // 1-99 "cooperation": 5, // 1-10 "homeworld_exists": 1, // 1 = true "recruiting_exists": 1, // 1 = true diff --git a/objects/obj_creation/Create_0.gml b/objects/obj_creation/Create_0.gml index 3e22d56e45..2b13c3bab0 100644 --- a/objects/obj_creation/Create_0.gml +++ b/objects/obj_creation/Create_0.gml @@ -349,7 +349,7 @@ fleet_type=1; strength=5; cooperation=5; purity=5; -stability=5; +stability=90; var i = 9; diff --git a/objects/obj_creation/Draw_0.gml b/objects/obj_creation/Draw_0.gml index 0d564c2936..2c8ac75fd0 100644 --- a/objects/obj_creation/Draw_0.gml +++ b/objects/obj_creation/Draw_0.gml @@ -193,18 +193,113 @@ try { draw_rectangle(445, 200, 1125, 202, true); + draw_set_halign(fa_center); draw_set_font(fnt_40k_30b); - draw_text_transformed(503, 210, string_hash_to_newline("Gene-Seed Mutations"), 0.6, 0.6, 0); - if (mutations > mutations_selected) { - draw_text_transformed(585, 230, $"Select {mutations - mutations_selected} More", 0.5, 0.5, 0); + draw_text_transformed(800, 210, string_hash_to_newline("Gene-Seed Mutations"), 0.6, 0.6, 0); + if (purity == 10) { + draw_text_transformed(800, 230, $"The gene-seed is perfectly pure", 0.5, 0.5, 0); + } else { + if (mutations > mutations_selected) { + draw_text_transformed(800, 230, $"Select {mutations - mutations_selected} more, according to your purity score", 0.5, 0.5, 0); + } else { + draw_text_transformed(800, 230, $"The gene-seed is mutated enough", 0.5, 0.5, 0); + draw_set_alpha(0.5); + } } + draw_set_halign(fa_left); var x1, y1, spac = 34; - if (custom < 2) { + if (custom < 2 || purity == 10) { draw_set_alpha(0.5); } - var mutations_defects = [{t_tip: "Anemic Preomnor", t_tip2: "Your Astartes lack the detoxifying gland called the Preomnor- they are more susceptible to poisons and toxins.", data: preomnor, mutation_points: 1}, {t_tip: "Disturbing Voice", t_tip2: "Your Astartes have a voice like a creaking door or a rumble. Decreases Imperium and Imperial Guard disposition.", data: voice, mutation_points: 1, disposition: [[eFACTION.Imperium, -8]]}, {t_tip: "Doomed", t_tip2: "Your Chapter cannot make more Astartes until enough research is generated. Counts as four mutations.", data: doomed, mutation_points: 4, disposition: [[eFACTION.Imperium, -8], [6, 8]]}, {t_tip: "Faulty Lyman's Ear", t_tip2: "Lacking a working Lyman's ear, all deep-striked Astartes recieve moderate penalties to both attack and defense.", data: lyman, mutation_points: 1}, {t_tip: "Hyper-Stimulated Omophagea", t_tip2: "After every battle the Astartes have a chance to feast upon their fallen enemies, or seldom, their allies.", data: omophagea, mutation_points: 1}, {t_tip: "Hyperactive Ossmodula", t_tip2: "Instead of wound tissue bone is generated; Apothecaries must spend twice the normal time healing your Astartes.", data: ossmodula, mutation_points: 1}, {t_tip: "Lost Zygote", t_tip2: "One of the Zygotes is faulty or missing. The Astartes only have one each and generate half the normal Gene-Seed.", data: zygote, mutation_points: 2}, {t_tip: "Inactive Sus-an Membrane", t_tip2: "Your Astartes do not have a Sus-an Membrane; they cannot enter suspended animation and recieve more casualties as a result.", data: membrane, mutation_points: 1}, {t_tip: "Missing Betchers Gland", t_tip2: "Your Astartes cannot spit acid, and as a result, have slightly less attack in melee combat.", data: betchers, mutation_points: 1}, {t_tip: "Mutated Catalepsean Node", t_tip2: "Your Astartes have reduced awareness when tired. Slightly less attack in ranged and melee combat.", data: catalepsean, mutation_points: 1}, {t_tip: "Oolitic Secretions", t_tip2: "Either by secretions or radiation, your Astartes have an unusual or strange skin color. Decreases disposition.", data: secretions, mutation_points: 1, disposition: [[eFACTION.Imperium, -8]]}, {t_tip: "Oversensitive Occulobe", t_tip2: "Your Astartes are no longer immune to stun grenades, bright lights, and have a massive penalty during morning battles.", data: occulobe, mutation_points: 1, disposition: [[eFACTION.Imperium, -8]]}, {t_tip: "Rampant Mucranoid", t_tip2: "Your Astartes' Mucranoid cannot be turned off; the slime lowers most dispositions and occasionally damages their armour.", data: mucranoid, mutation_points: 1, disposition: [[1, -4], [eFACTION.Imperium, -8], [3, -4], [4, -4], [5, -4], [6, -4]]}]; + var mutations_defects = [{ + t_tip: "Anemic Preomnor", + t_tip2: "Your Astartes lack the detoxifying gland called the Preomnor- they are more susceptible to poisons and toxins.", + data: preomnor, + mutation_points: 1 + }, { + t_tip: "Disturbing Voice", + t_tip2: "Your Astartes have a voice like a creaking door or a rumble. Decreases Imperium and Imperial Guard disposition.", + data: voice, + mutation_points: 1, + disposition: [ + [eFACTION.Imperium, -8] + ] + }, { + t_tip: "Doomed", + t_tip2: "Your Chapter cannot make more Astartes until enough research is generated. Counts as four mutations.", + data: doomed, + mutation_points: 4, + disposition: [ + [eFACTION.Imperium, -8], + [6, 8] + ] + }, { + t_tip: "Faulty Lyman's Ear", + t_tip2: "Lacking a working Lyman's ear, all deep-striked Astartes receive moderate penalties to both attack and defense.", + data: lyman, + mutation_points: 1 + }, { + t_tip: "Hyper-Stimulated Omophagea", + t_tip2: "After every battle the Astartes have a chance to feast upon their fallen enemies, or seldom, their allies.", + data: omophagea, + mutation_points: 1 + }, { + t_tip: "Hyperactive Ossmodula", + t_tip2: "Instead of wound tissue bone is generated; Apothecaries must spend twice the normal time healing your Astartes.", + data: ossmodula, + mutation_points: 1 + }, { + t_tip: "Lost Zygote", + t_tip2: "One of the Zygotes is faulty or missing. The Astartes only have one each and generate half the normal Gene-Seed.", + data: zygote, + mutation_points: 2 + }, { + t_tip: "Inactive Sus-an Membrane", + t_tip2: "Your Astartes do not have a Sus-an Membrane; they cannot enter suspended animation and receive more casualties as a result.", + data: membrane, + mutation_points: 1 + }, { + t_tip: "Missing Betchers Gland", + t_tip2: "Your Astartes cannot spit acid, and as a result, have slightly less attack in melee combat.", + data: betchers, + mutation_points: 1 + }, { + t_tip: "Mutated Catalepsean Node", + t_tip2: "Your Astartes have reduced awareness when tired. Slightly less attack in ranged and melee combat.", + data: catalepsean, + mutation_points: 1 + }, { + t_tip: "Oolitic Secretions", + t_tip2: "Either by secretions or radiation, your Astartes have an unusual or strange skin color. Decreases disposition.", + data: secretions, + mutation_points: 1, + disposition: [ + [eFACTION.Imperium, -8] + ] + }, { + t_tip: "Oversensitive Occulobe", + t_tip2: "Your Astartes are no longer immune to stun grenades, bright lights, and have a massive penalty during morning battles.", + data: occulobe, + mutation_points: 1, + disposition: [ + [eFACTION.Imperium, -8] + ] + }, { + t_tip: "Rampant Mucranoid", + t_tip2: "Your Astartes' Mucranoid cannot be turned off; the slime lowers most dispositions and occasionally damages their armour.", + data: mucranoid, + mutation_points: 1, + disposition: [ + [1, -4], + [eFACTION.Imperium, -8], + [3, -4], + [4, -4], + [5, -4], + [6, -4] + ] + }]; x1 = 450; y1 = 260; for (var i = 0; i < array_length(mutations_defects); i++) { @@ -263,7 +358,8 @@ try { draw_line(445, 507, 1125, 507); draw_set_font(fnt_40k_30b); - draw_text_transformed(444, 515, string_hash_to_newline("Starting Disposition"), 0.6, 0.6, 0); + draw_set_halign(fa_center); + draw_text_transformed(800, 515, string_hash_to_newline("Starting Disposition"), 0.6, 0.6, 0); draw_set_font(fnt_40k_14b); draw_set_halign(fa_right); diff --git a/objects/obj_creation/Step_0.gml b/objects/obj_creation/Step_0.gml index 32232f913d..e2f3ec348e 100644 --- a/objects/obj_creation/Step_0.gml +++ b/objects/obj_creation/Step_0.gml @@ -101,7 +101,7 @@ if (change_slide==35) or (change_slide==36) or (chapter_name=="Doom Benefactors" strength=5; cooperation=5; purity=5; - stability=5; + stability=90; for(var i=0; i<16; i++){ adv[i]=""; adv_num[i]=0; diff --git a/objects/obj_ncombat/Alarm_5.gml b/objects/obj_ncombat/Alarm_5.gml index 296ab80c29..60b4f8aba2 100644 --- a/objects/obj_ncombat/Alarm_5.gml +++ b/objects/obj_ncombat/Alarm_5.gml @@ -50,7 +50,7 @@ if (ground_mission){ } }; -seed_saved=(min(seed_max,apothecaries_alive*40))-gene_penalty; +seed_saved = (min(seed_max, apothecaries_alive * 40)); if (obj_ini.doomed) then seed_saved=0; if (seed_saved>0) then obj_controller.gene_seed+=seed_saved; diff --git a/objects/obj_ncombat/Create_0.gml b/objects/obj_ncombat/Create_0.gml index f122d3100d..9148117aad 100644 --- a/objects/obj_ncombat/Create_0.gml +++ b/objects/obj_ncombat/Create_0.gml @@ -128,7 +128,6 @@ repeat(70){i+=1; post_unit_lost[i]=""; post_unit_veh[i]=0; post_units_lost[i]=0; - post_geneseed_recovered[i]=0; post_equipment_lost[i]=""; post_equipments_lost[i]=0; @@ -158,7 +157,6 @@ newline=""; newline_color=""; liness=0; world_size=0; -gene_penalty=0; timer=0; timer_stage=0; diff --git a/objects/obj_pnunit/Alarm_5.gml b/objects/obj_pnunit/Alarm_5.gml index 903904f392..73b1052820 100644 --- a/objects/obj_pnunit/Alarm_5.gml +++ b/objects/obj_pnunit/Alarm_5.gml @@ -140,10 +140,22 @@ for (var i=0;i 1) { + _harvestable_seed++; + } + } + if (_birthday <= (_current_year - 5)) { + if (irandom_range(1, 20) > 1) { + _harvestable_seed++; + } + } + obj_ncombat.seed_max += _harvestable_seed; } var last=0; diff --git a/scripts/scr_chapter_random/scr_chapter_random.gml b/scripts/scr_chapter_random/scr_chapter_random.gml index 5394ade1a8..57aa9ac8bb 100644 --- a/scripts/scr_chapter_random/scr_chapter_random.gml +++ b/scripts/scr_chapter_random/scr_chapter_random.gml @@ -26,7 +26,7 @@ function scr_chapter_random(argument0) { icon=1;icon_name="da"; founding=1;found_secret=0; points=0;maxpoints=100; - fleet_type=1;strength=5;cooperation=5;purity=5;stability=5; + fleet_type=1;strength=5;cooperation=5;purity=5;stability=90; homeworld="Temperate";homeworld_name=global.name_generator.generate_star_name(); recruiting="Death";recruiting_name=global.name_generator.generate_star_name(); flagship_name=global.name_generator.generate_imperial_ship_name(); @@ -84,8 +84,8 @@ function scr_chapter_random(argument0) { if (argument0=1){ strength=choose(2,3,4,5,6,7,8); purity=choose(2,3,4,5,6,7,8);if (strength<5) then purity+=2; - stability=choose(2,3,4,5,6,7,8);if (purity<5) then stability+=2; - cooperation=choose(2,3,4,5,6,7,8);if (stability<5) then cooperation+=2; + stability=choose(20,30,40,50,60,70,80);if (purity<5) then stability+=19; + cooperation=choose(2,3,4,5,6,7,8);if (stability<90) then cooperation+=2; founding=10;found_secret=floor(random(10))+1; points=100;maxpoints=100; diff --git a/scripts/scr_creation/scr_creation.gml b/scripts/scr_creation/scr_creation.gml index e578f42c1d..5cb6b278db 100644 --- a/scripts/scr_creation/scr_creation.gml +++ b/scripts/scr_creation/scr_creation.gml @@ -98,11 +98,7 @@ function scr_creation(slide_num) { secretions=0; occulobe=0; mucranoid=0; - if (purity>=1) then mutations=4; - if (purity>=2) then mutations=3; - if (purity>=4) then mutations=2; - if (purity>=7) then mutations=1; - if (purity=10) then mutations=0; + mutations = 10 - purity } if (custom > 0) { @@ -110,8 +106,8 @@ function scr_creation(slide_num) { disposition[eSTART_FACTION.Progenitor] = 60 + ((cooperation - 5) * 4); // Prog disposition[eSTART_FACTION.Imperium] = 50 + ((cooperation - 5) * 4); // Imp disposition[eSTART_FACTION.Mechanicus] = 40 + ((cooperation - 5) * 2); // Mech - disposition[eSTART_FACTION.Inquisition] = 30 + ((cooperation - 5) * 2) - (2 * (10 - purity)) - (2 * (10 - stability)); // Inq - disposition[eSTART_FACTION.Ecclesiarchy] = 40 + ((cooperation - 5) * 4) - (10 - purity) - ((10 - stability)); // Ecclesiarchy + disposition[eSTART_FACTION.Inquisition] = 30 + ((cooperation - 5) * 2) - (2 * (10 - purity)) - ((99 - stability) / 5); // Inq + disposition[eSTART_FACTION.Ecclesiarchy] = 40 + ((cooperation - 5) * 4) - (10 - purity) - ((99 - stability) / 5); // Ecclesiarchy switch (founding) { case eCHAPTERS.SPACE_WOLVES: diff --git a/scripts/scr_creation_draw_slides/scr_creation_draw_slides.gml b/scripts/scr_creation_draw_slides/scr_creation_draw_slides.gml index 41b6771743..cf0689c5f7 100644 --- a/scripts/scr_creation_draw_slides/scr_creation_draw_slides.gml +++ b/scripts/scr_creation_draw_slides/scr_creation_draw_slides.gml @@ -495,45 +495,68 @@ function draw_chapter_trait_select(){ draw_line(445,291,1125,291); draw_set_halign(fa_center); - draw_text_transformed(800,301,string_hash_to_newline("Chapter Stats"),0.6,0.6,0); - draw_set_halign(fa_right); + draw_text_transformed(800,301,"Chapter Stats",0.6,0.6,0); + draw_set_halign(fa_left); - draw_text_transformed(617,332,$"Strength ({strength})",0.5,0.5,0); - draw_text_transformed(617,387,$"Cooperation ({cooperation})",0.5,0.5,0); - draw_text_transformed(617,442,$"GeneSeed Purity ({purity})",0.5,0.5,0); - draw_text_transformed(617,497,$"GeneSeed Stability ({stability})",0.5,0.5,0); - var arrow_buttons_controls = [strength, cooperation, purity, stability] - for (var i=0;i<4;i++){ - if (custom=2) then draw_sprite_stretched(spr_arrow,0,625,325+(i*55),32,32); - if (scr_hit(625,325+(i*55),657,357+(i*55))){ - obj_cursor.image_index=1; - if (cooldown<=0) and (custom=2) and (arrow_buttons_controls[i]>1) and (mouse_left>=1){ - arrow_buttons_controls[i]-=1; - points-=10; - cooldown=8000; + var _strength_ratings = ["", "Decimated", "Reduced", "Reduced", "Reduced", "Average", "Above Average", "Above Average", "Considerable", "Considerable", "Overwhelming"]; + var _cooperation_ratings = ["", "Antagonistic", "Uncooperative", "Uncooperative", "Uncooperative", "Neutral", "Trusted", "Trusted", "Trusted", "Trusted", "Exemplary"]; + var _geneseed_ratings = ["", "Abnormal", "Horrible", "Horrible", "Bad", "Bad", "Mediocre", "Mediocre", "Good", "Good", "Perfect"]; + draw_text_transformed(505, 332, $"Strength: {_strength_ratings[strength]} ({strength})", 0.5, 0.5, 0); + draw_text_transformed(505, 387, $"Cooperation: {_cooperation_ratings[cooperation]} ({cooperation})", 0.5, 0.5, 0); + draw_text_transformed(505, 442, $"Gene-Seed Purity: {_geneseed_ratings[purity]} ({purity})", 0.5, 0.5, 0); + draw_text_transformed(505, 497, $"Gene-Seed Stability: ({stability}%)", 0.5, 0.5, 0); + + var arrow_buttons_controls = [strength, cooperation, purity, stability]; + var score_costs = [10, 10, 10, 1]; + var scores_max = [10, 10, 10, 99]; + var scores_min = [1, 1, 1, 1]; + var click_change = keyboard_check(vk_control) ? 10 : 1; + if (custom == 2) { + for (var i = 0; i < 4; i++) { + draw_sprite_stretched(spr_arrow, 0, 436, 325 + (i * 55), 32, 32); + if (scr_hit(436, 325 + (i * 55), 436 + sprite_get_width(spr_arrow), 357 + (i * 55))) { + obj_cursor.image_index = 1; + tooltip = "Decrease"; + tooltip2 = "(Hold Ctrl to decrease by 10)"; + if (scr_click_left() && (arrow_buttons_controls[i] - click_change) >= scores_min[i]) { + arrow_buttons_controls[i] -= click_change; + points -= score_costs[i] * click_change; + } } - } - if (custom=2) then draw_sprite_stretched(spr_arrow,1,1135,325+(i*55),32,32); - if (scr_hit(1135,325+(i*55),1167,357+(i*55))){ - obj_cursor.image_index=1; - if (cooldown<=0) and (custom=2) and (arrow_buttons_controls[i]<10) and (points+10<=maxpoints) and (mouse_left>=1){ - arrow_buttons_controls[i]+=1; - points+=10; - cooldown=8000; + draw_sprite_stretched(spr_arrow, 1, 470, 325 + (i * 55), 32, 32); + if (scr_hit(470, 325 + (i * 55), 470 + sprite_get_width(spr_arrow), 357 + (i * 55))) { + obj_cursor.image_index = 1; + tooltip = "Increase"; + tooltip2 = "(Hold Ctrl to increase by 10)"; + if (scr_click_left() && (arrow_buttons_controls[i] + click_change) <= scores_max[i] && (points + (score_costs[i] * click_change) <= maxpoints)) { + arrow_buttons_controls[i] += click_change; + points += score_costs[i] * click_change; + } } } - draw_rectangle(668,330+(i*55),1125,351+(i*55),1); - draw_rectangle(668,330+(i*55),668+(arrow_buttons_controls[i]*45.7),351+(i*55),0); } + strength = arrow_buttons_controls[0]; cooperation = arrow_buttons_controls[1]; purity = arrow_buttons_controls[2]; stability = arrow_buttons_controls[3]; - if (scr_hit(532,325,1166,357)){tooltip="Strength";tooltip2="How many companies your chapter begins with. For every score below five a company will be removed; conversely, each score higher grants 50 additional astartes.";} - if (scr_hit(486,380,1166,412)){tooltip="Cooperation";tooltip2="How diplomatic your chapter is. A low score will lower starting dispositions of Imperial factions and make disposition increases less likely to occur.";} - if (scr_hit(442,435,1166,467)){tooltip="Purity";tooltip2="A measure of how pure and mutation-free your chapter's gene-seed is. A perfect score means no mutations must be chosen. The lower the score, the more mutations.";} - if (scr_hit(423,490,1166,522)){tooltip="Stability";tooltip2="A measure of how easily new mutations and corruption can occur with your chapter-gene seed. A perfect score makes the gene-seed almost perfectly stable.";} + if (scr_hit(505, 325, 800, 357)) { + tooltip = "Strength"; + tooltip2 = "How many marines your chapter has. \nFor every score below five a company will be removed; conversely, each score higher grants 50 additional astartes."; + } + if (scr_hit(505, 380, 800, 412)) { + tooltip = "Cooperation"; + tooltip2 = "How diplomatic your chapter is. \nA low score will lower starting dispositions of Imperial factions and make disposition increases less likely to occur."; + } + if (scr_hit(505, 435, 800, 467)) { + tooltip = "Gene-Seed Purity"; + tooltip2 = "How many inherent mutations your gene-seed has. \nEach score below ten means one mutations will need to be chosen."; + } + if (scr_hit(505, 490, 800, 522)) { + tooltip = "Gene-Seed Stability"; + tooltip2 = "How easily new mutations and corruption can occur with your chapter's gene seed. \nAffects the amount of random mutations your existing marines have, and the amount new aspirants get after the implantation is finished."; + } } if (popup!="icons"){ diff --git a/scripts/scr_load_controller/scr_load_controller.gml b/scripts/scr_load_controller/scr_load_controller.gml index cacf71b234..d4b8c599b0 100644 --- a/scripts/scr_load_controller/scr_load_controller.gml +++ b/scripts/scr_load_controller/scr_load_controller.gml @@ -95,7 +95,7 @@ function scr_load_controller(save_id){ obj_controller.tau_messenger=ini_read_real("Controller","tau_messenger",0); obj_controller.fleet_all=ini_read_real("Controller","fleet_all",0); obj_ini.tolerant=ini_read_real("Controller","tolerant",0); - obj_ini.stability=ini_read_real("Controller","stability",5); + obj_ini.stability=ini_read_real("Controller","stability",90); obj_ini.purity=ini_read_real("Controller","purity",5); obj_controller.tolerant=ini_read_real("Controller","tolerant",0); obj_controller.unload=ini_read_real("Controller","unload",0); diff --git a/scripts/scr_marine_struct/scr_marine_struct.gml b/scripts/scr_marine_struct/scr_marine_struct.gml index fcc2b4cb4e..8570dcd1f0 100644 --- a/scripts/scr_marine_struct/scr_marine_struct.gml +++ b/scripts/scr_marine_struct/scr_marine_struct.gml @@ -725,31 +725,63 @@ function TTRPG_stats(faction, comp, mar, class = "marine", other_spawn_data={}) if (faction ="chapter"){ allegiance = global.chapter_name; } - gene_seed_mutations = { - "preomnor":obj_ini.preomnor, - "lyman":obj_ini.lyman, - "omophagea":obj_ini.omophagea, - "ossmodula":obj_ini.ossmodula, - "zygote":obj_ini.zygote, - "betchers":obj_ini.betchers, - "catalepsean":obj_ini.catalepsean, - "occulobe":obj_ini.occulobe, - "mucranoid":obj_ini.mucranoid, - "membrane":obj_ini.membrane, - "voice":obj_ini.voice, - }; - var mutation_names = struct_get_names(gene_seed_mutations) - for (var mute =0; mute 0) { + var _picked_mutation = array_random_index(_possible_mutations); + gene_seed_mutations[$ _possible_mutations[_picked_mutation]] = 1; + array_delete(_possible_mutations, _picked_mutation, 1); + _mutations_assigned++; + _mutation_threshold = max(_mutation_threshold - 5 * _mutations_assigned, 0); + if (_mutation_roll <= _mutation_threshold) { + continue; + } else { + break; + } + } else { + break; + } + } + } + }; + //array index 0 == trait to add // array index 1 == probability e.g 99,98 == if (irandom(99)>98){add_trait} // array index 3 == probability modifiers diff --git a/scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml b/scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml index 38a4b091f6..1862d21b85 100644 --- a/scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml +++ b/scripts/scr_specialist_point_handler/scr_specialist_point_handler.gml @@ -383,7 +383,7 @@ function SpecialistPointHandler() constructor{ _cur_slave = _slaves[i]; if (_cur_slave.num>0){ _cur_slave.eta--; - if (irandom(100000)<=(10-obj_ini.stability)*_cur_slave.num){ + if (irandom(100000)<=(100-obj_ini.stability)*_cur_slave.num){ _cur_slave.num--; _lost_gene_slaves++; scr_add_item("Gene Pod Incubator");