Code
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 64);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 64);
Set Resources("Current Player", Add, 64, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 16);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 16);
Set Resources("Current Player", Add, 16, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 4);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 4);
Set Resources("Current Player", Add, 4, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 1);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 1);
Set Resources("Current Player", Add, 1, ore);
}
//-----------------------------------------------------------------//
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 64);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 64);
Set Resources("Current Player", Add, 64, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 16);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 16);
Set Resources("Current Player", Add, 16, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 4);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 4);
Set Resources("Current Player", Add, 4, ore);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Nuclear Missile", At least, 1);
Actions:
Preserve Trigger();
Set Deaths("Current Player", "Nuclear Missile", Subtract, 1);
Set Resources("Current Player", Add, 1, ore);
}
//-----------------------------------------------------------------//
In this case the Nuclear Missile stores a single byte (0-255) and I am transfering it to Player1's minerals in a single trigger cycle. Ordinarily this would take 8 triggers with binary (1,2,4,8,16,32,64,128), however, using quaternary (1,4,16,64) I save half the space (in trigger count and in map size) that I would've been using otherwise, and this only works because each trigger is copied three times since each player, force, and group is checked.
This is significantly advantageous because of the space saved, and you can even apply this to a specific player by using deaths and current player:
Code
Trigger("Player 1"){
Conditions:
Always();
Actions:
Set Deaths("Player 1", "Psi Emitter", Set To, 1);
Set Deaths("Player 2", "Psi Emitter", Set To, 2);
Set Deaths("Player 3", "Psi Emitter", Set To, 3);
Set Deaths("Player 4", "Psi Emitter", Set To, 4);
Set Deaths("Player 5", "Psi Emitter", Set To, 5);
Set Deaths("Player 6", "Psi Emitter", Set To, 6);
Set Deaths("Player 7", "Psi Emitter", Set To, 7);
Set Deaths("Player 8", "Psi Emitter", Set To, 8);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Psi Emitter", Exactly, 5);
Actions:
Comment("This only executes for player 5");
}
//-----------------------------------------------------------------//
Conditions:
Always();
Actions:
Set Deaths("Player 1", "Psi Emitter", Set To, 1);
Set Deaths("Player 2", "Psi Emitter", Set To, 2);
Set Deaths("Player 3", "Psi Emitter", Set To, 3);
Set Deaths("Player 4", "Psi Emitter", Set To, 4);
Set Deaths("Player 5", "Psi Emitter", Set To, 5);
Set Deaths("Player 6", "Psi Emitter", Set To, 6);
Set Deaths("Player 7", "Psi Emitter", Set To, 7);
Set Deaths("Player 8", "Psi Emitter", Set To, 8);
}
//-----------------------------------------------------------------//
Trigger("Player 1","Player 2","Player 3","Player 4","Player 5","Player 6","Player 7","Player 8","All players","Force 1","Force 2","Force 3","Force 4"){
Conditions:
Deaths("Current Player", "Psi Emitter", Exactly, 5);
Actions:
Comment("This only executes for player 5");
}
//-----------------------------------------------------------------//
This would allow me to transfer a single byte in a mere 4 triggers and it sure would make a lot of mathematical operations much easier.
In light of this, I wonder if I should switch all of my arithmetic operations over to quaternary (or to at least make it a configuration option), or am I missing something here? Is there a good reason that binary count-offs are so prevalent as opposed to these?
None.