====Element_Sytizen Specification==== 1. Sliders 1.1. Team 1.1.1. Up to 7 team colors to select: 1.1.1.1. Red 1.1.1.2. Blue 1.1.1.3. Green 1.1.1.4. Yellow 1.1.1.5. Magenta 1.1.1.6. Cyan 1.1.1.7. Black 1.1.1.8. White will be used to indicate an invalid team color value passed 1.2. Altruism Value 1.2.1. The initial Altruism value. Range is 0-16. 1.2.1.1. 0 indicates that the value will be randomly selected from a uniformly distributed set of values from 1-16. 1.2.1.2. [1,8] will be considered “non-altruistic” 1.2.1.3. [9,16] will be considered “altruistic”. 1.3. Parochialism Value 1.3.1. The initial Parochialism value. Range is 0-16. 1.3.1.1. 0 indicates that the value will be randomly selected from a uniformly distributed set of values from 1-16. 1.3.1.2. [1,8] will be considered “non-parochial” 1.3.1.3. [9,16] will be considered “parochial”. 2. Properties 2.1. u8 team; //team value 2.2. u8 genes; //genetic makeup; bits 0-3 represent altruism, 4-7 represent parochialism 2.3. s32 energy; //the resources of the element 3. Behavior 3.1. Initial Behavior 3.1.1. Pay a metabolic cost by way of subtracting an amount from energy if energy <= 0, element deletes itself. 3.1.2. Loop through the event window and track everything seen with its location. 3.1.3. If there is res in the immediate neighborhood (distance of 1 from active element) consume 1 res and add an amount of energy to the existing pool. 3.2. Genetic-driven behavior 3.2.1. PA: Attack any single out-group elements in the neighborhood. 3.2.1.1. Outcome is based on probability 3.2.1.1.1. P[kPA] = 0.5 3.2.1.1.2. P[kP-] = 0.6 3.2.1.1.3. P[k-A] = 0.75 3.2.1.1.4. P[k--] = 0.85 3.2.1.2. Success 3.2.1.2.1. Target element is deleted 3.2.1.2.2. Active receives ½ of target energy value 3.2.1.3. Failure 3.2.1.3.1. Probability that active will be deleted 3.2.1.3.1.1. P[dPA] = 0.5 3.2.1.3.1.2. P[dP-] = 0.4 3.2.1.3.1.3. P[d-A] = 0.25 3.2.1.3.1.4. P[d--] = 0.15 3.2.2. PNA: Attempt to steal from the least-threatening out-group agent in the neighborhood. 3.2.2.1. Outcome is based on probability 3.2.2.1.1. P[sPA] = 0.5 3.2.2.1.2. P[sP-] = 0.6 3.2.2.1.3. P[s-A] = 0.75 3.2.2.1.4. P[s--] = 0.85 3.2.2.2. Success 3.2.2.2.1. Target element loses ¼ energy value 3.2.2.2.2. Active receives target energy value lost 3.2.2.3. Failure 3.2.2.3.1. Small probability that active will be deleted 3.2.2.3.1.1. P[dPA] = 0.25 3.2.2.3.1.2. P[dP-] = 0.2 3.2.2.3.1.3. P[d-A] = 0.15 3.2.2.3.1.4. P[d--] = 0.1 3.2.3. NPA: Evaluate the needs of each agent in the neighborhood and share based on cost/benefit 3.2.3.1. Range is immediate neighborhood 3.2.3.2. If target.energy < active.energy then share (Active.energy-Target.energy)/2 3.2.4. NPNA: No actions 3.3. Reproduction 3.3.1. If multiple potential mates exist within the event window, choose uniformly at random 3.3.2. Mate must be from same team 3.3.3. Offspring will appear in any available location within the event window. If no such free location is available, reproduction is canceled. 3.3.4. Active.energy and mate.energy must be > 20. Each will lose energy/3 3.3.5. Offspring energy = active.energy/3 + mate.energy/3 3.3.6. Offspring genetics inheritance 3.3.6.1. Altruism value selected at random from one parent with normal distribution 3.3.6.1.1. Subject to 0.5 chance of mutation within +-2 points 3.3.6.2. Parochialism value selected at random from one parent with normal distribution 3.3.6.2.1. Subject to 0.5 chance of mutation within +-2 points 3.3.7. Team color inherited from parents 3.4. Movement 3.4.1. The event window is checked for the nearest RES location. 3.4.2. In the absence of available RES, each type will check for the nearest genetically favorable conditions in the event window, if such conditions exist. 3.4.2.1. PA looks for outsider team members 3.4.2.2. PNA looks for outsider team members 3.4.2.3. NPA looks for other team members but will avoid P from outside groups 3.4.2.4. NPNA will diffuse if no RES detected 3.4.3. A single-step move is made, biased towards the preferable location