Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor: First company command gear/size assign #402

Merged
merged 1 commit into from
Jan 12, 2025
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
239 changes: 97 additions & 142 deletions scripts/scr_initialize_custom/scr_initialize_custom.gml
Original file line number Diff line number Diff line change
Expand Up @@ -2534,189 +2534,144 @@ function scr_initialize_custom() {

k = 0;

var _first_armour = scr_has_adv("Crafters") ? "Tartaros" : "Terminator Armour";
var _first_wep1 = wep1[100][eROLE.Terminator];
var _first_wep2 = wep2[100][eROLE.Terminator];
if (terminator <= 0) {
_first_armour = "";
_first_wep1 = "default";
_first_wep2 = "default";
}

var _is_terminator = function(_armour) {
return array_contains(["Terminator Armour", "Tartaros"], _armour);
};

var _first_size = _is_terminator(_first_armour) ? 2 : 1;

if (veteran + terminator > 0) {
k += 1;
commands += 1; // 1st company Captain
name[company][k] = honor_captain_name;
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
var _armour = "Tartaros";
}
if (terminator <= 0) {
_armour = "MK6 Corvus";
}

var _spawn_unit = add_unit_to_company("marine", company, k, roles.captain, eROLE.Captain, "Relic Blade",choose("Storm Shield", "Storm Bolter"),"default","default",_armour);
if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.captain, eROLE.Captain, "Relic Blade",choose("Storm Shield", "Storm Bolter"),"default","default",_first_armour);

repeat(chaplains_per_company){
k += 1;
commands += 1; // 1st company Chaplain
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
var _armour = "Tartaros";
}
if (terminator <= 0) {
_armour = "MK6 Corvus";
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.chaplain, eROLE.Chaplain,"default","Storm Bolter","default","default",_armour);

if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.chaplain, eROLE.Chaplain,"default",_first_wep2,"default","default",_first_armour);
}

repeat(apothecary_per_company){
k += 1;
commands += 1; // 1st company Apothecary
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
var _armour = "Tartaros";
}
if (terminator <= 0) {
_armour = "MK6 Corvus";
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary,"Storm Bolter","","default","default",_armour);

if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.apothecary, eROLE.Apothecary,_first_wep1,_first_wep2,"default","default",_first_armour);
}

if (!scr_has_disadv("Psyker Intolerant")) {
repeat(epistolary_per_company){
k += 1; // 1st company Librarian
commands += 1;
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
var _armour = "Tartaros";
}
if (terminator <= 0) {
_armour = "MK6 Corvus";
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian,"default",choose_weighted(weapon_weighted_lists.pistols),"default","default",_armour);

if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian,"default",_first_wep2,"default","default",_first_armour);
}
}

repeat(techmarines_per_company){
show_debug_message($"chap terminators {terminator}")
// show_debug_message($"chap terminators {terminator}")
k += 1;
commands += 1; // 1st company Techmarine
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
_armour = "Tartaros";
}
if (terminator <= 0){
var _armour = _first_armour;
if (!_is_terminator(_armour)) {
if(scr_has_disadv("Poor Equipment")){
_armour = "MK6 Corvus";
} else {
_armour = "Artificer Armour"
}
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, "default","Storm Bolter","default","default",_armour);
if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.techmarine, eROLE.Techmarine, _first_wep1,_first_wep2,"default","default",_armour);
}


k += 1; // 1st company Standard bearer
man_size += 1;
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
_armour = "Tartaros";
}
if (terminator <= 0){
_armour = "MK6 Corvus"
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.ancient, eROLE.Ancient, "default","Storm Bolter","default","default",_armour);
if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
man_size += 1;
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.ancient, eROLE.Ancient, "default",_first_wep2,"default","default",_first_armour);

k += 1; // 1st company Champion
var _wep1 = _first_wep1;
var _wep2 = _first_wep2;
if (_is_terminator(_first_armour)) {
_wep1 = "Thunder Hammer";
if (global.chapter_name == "Dark Angels"){
_wep1 = "Heavy Thunder Hammer";
_wep2 = "";
}
}
man_size += _first_size;
add_unit_to_company("marine", company, k, roles.champion, eROLE.Champion, _wep1,_wep2,"default","default",_first_armour);

k += 1;
man_size += 1;
var _armour = "Terminator Armour";
if(scr_has_adv("Crafters")){
_armour = "Tartaros";
}
if (terminator <= 0){
_armour = "MK6 Corvus"
}
var _wep1 = "Thunder Hammer";
var _wep2 = "Storm Bolter";
if (global.chapter_name == "Dark Angels"){
_wep1 = "Heavy Thunder Hammer";
_wep2 = "";
repeat(terminator) {
k += 1;
man_size += 2;
add_unit_to_company("marine", company, k, roles.terminator, eROLE.Terminator, "","","default","default","default");
}
var _spawn_unit = add_unit_to_company("marine", company, k, roles.champion, eROLE.Champion, _wep1,_wep2,"default","default",_armour);
if (_spawn_unit.armour() == "Terminator Armour" || _spawn_unit.armour() == "Tartaros") {
repeat(veteran) {
k += 1;
man_size += 1;
add_unit_to_company("marine", company, k, roles.veteran, eROLE.Veteran, "","","default","default","default");
}
}

if (terminator > 0) then repeat(terminator) {
k += 1;
man_size += 2
add_unit_to_company("marine", company, k, roles.terminator, eROLE.Terminator, "","","default","default","default");
}
repeat(veteran) {
k += 1;
man_size += 1;
add_unit_to_company("marine", company, k, roles.veteran, eROLE.Veteran, "","","default","default","default");
}

repeat(scr_has_adv("Venerable Ancients") ? 3 : 2) {
k += 1;
commands += 1;
add_unit_to_company("dreadnought", company, k, "Venerable " + string(roles.dreadnought),eROLE.Dreadnought, "default", "Plasma Cannon","default","default","Dreadnought");
}

for (var i = 0; i < 4; i++) {
v += 1;
man_size += 10;
add_veh_to_company("Rhino", company, v, "Storm Bolter", "HK Missile", "", "Artificer Hull", "Dozer Blades")
}

var predrelic = 2;
if (scr_has_adv("Tech-Brothers")) then predrelic +=2;
repeat(predrelic) {
v += 1;
man_size += 10;
var predtype = choose(1, 2, 3, 4);
switch (predtype){
case 1:
add_veh_to_company("Predator", company, v, "Plasma Destroyer Turret", "Lascannon Sponsons", "HK Missile", "Artificer Hull", "Searchlight")
break;
case 2:
add_veh_to_company("Predator", company, v, "Heavy Conversion Beamer Turret", "Lascannon Sponsons", "HK Missile", "Artificer Hull", "Searchlight")
break;
case 3:
add_veh_to_company("Predator", company, v, "Flamestorm Cannon Turret", "Heavy Flamer Sponsons", "Storm Bolter", "Artificer Hull", "Dozer Blades")
break;
case 4:
add_veh_to_company("Predator", company, v, "Magna-Melta Turret", "Heavy Flamer Sponsons", "Storm Bolter", "Artificer Hull", "Dozer Blades")
break;

repeat(scr_has_adv("Venerable Ancients") ? 3 : 2) {
k += 1;
commands += 1;
add_unit_to_company("dreadnought", company, k, "Venerable " + string(roles.dreadnought),eROLE.Dreadnought, "default", "Plasma Cannon","default","default","Dreadnought");
}
}
if (global.chapter_name != "Lamenters") then repeat(6) {
v += 1;
man_size += 20;
if (floor(v % 4) == 1) or(floor(v % 4) == 2) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Heavy Bolter Mount", "Twin Linked Lascannon Sponsons", "HK Missile", "Heavy Armour", "Searchlight")

repeat(4) {
v += 1;
man_size += 10;
add_veh_to_company("Rhino", company, v, "Storm Bolter", "HK Missile", "", "Artificer Hull", "Dozer Blades")
}
if (floor(v % 4) == 3) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Assault Cannon Mount", "Hurricane Bolter Sponsons", "Storm Bolter", "Heavy Armour", "Frag Assault Launchers")

var predrelic = 2;
if (scr_has_adv("Tech-Brothers")) then predrelic +=2;
repeat(predrelic) {
v += 1;
man_size += 10;
var predtype = choose(1, 2, 3, 4);
switch (predtype){
case 1:
add_veh_to_company("Predator", company, v, "Plasma Destroyer Turret", "Lascannon Sponsons", "HK Missile", "Artificer Hull", "Searchlight")
break;
case 2:
add_veh_to_company("Predator", company, v, "Heavy Conversion Beamer Turret", "Lascannon Sponsons", "HK Missile", "Artificer Hull", "Searchlight")
break;
case 3:
add_veh_to_company("Predator", company, v, "Flamestorm Cannon Turret", "Heavy Flamer Sponsons", "Storm Bolter", "Artificer Hull", "Dozer Blades")
break;
case 4:
add_veh_to_company("Predator", company, v, "Magna-Melta Turret", "Heavy Flamer Sponsons", "Storm Bolter", "Artificer Hull", "Dozer Blades")
break;
}
}
if (floor(v % 4) == 0) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Assault Cannon Mount", "Flamestorm Cannon Sponsons", "Storm Bolter", "Heavy Armour", "Frag Assault Launchers")

if (global.chapter_name != "Lamenters") then repeat(6) {
v += 1;
man_size += 20;
if (floor(v % 4) == 1) or(floor(v % 4) == 2) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Heavy Bolter Mount", "Twin Linked Lascannon Sponsons", "HK Missile", "Heavy Armour", "Searchlight")
}
if (floor(v % 4) == 3) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Assault Cannon Mount", "Hurricane Bolter Sponsons", "Storm Bolter", "Heavy Armour", "Frag Assault Launchers")
}
if (floor(v % 4) == 0) {
add_veh_to_company("Land Raider", company, v, "Twin Linked Assault Cannon Mount", "Flamestorm Cannon Sponsons", "Storm Bolter", "Heavy Armour", "Frag Assault Launchers")
}
}
v = 0;
}
v = 0;

firsts = k;

Expand Down Expand Up @@ -3012,7 +2967,7 @@ function scr_initialize_custom() {
if (!scr_has_disadv("Psyker Intolerant")) {
k += 1; // Company Librarian
commands += 1;
var _spawn_unit = add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default",choose_weighted(weapon_weighted_lists.pistols),"default","default","");
add_unit_to_company("marine", company, k, roles.librarian, eROLE.Librarian, "default",choose_weighted(weapon_weighted_lists.pistols),"default","default","");
}

k += 1; // Standard Bearer
Expand Down
Loading