- Timestamp:
- 07/31/16 23:26:43 (9 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
experiments/frams/foraminifera/data/scripts/foraminifera.inc
r552 r554 30 30 function createForamMorphology(morphotype, gen, chamber_num) 31 31 { 32 var rad = getProperty(gen, "chamber_proculus");33 32 var geno = "//0\nm:Vstyle=foram\n" + chambers[morphotype][0] + "vr=" + colors[gen]; 34 33 … … 37 36 for (var i = 0; i < chamber_num; i++) 38 37 { 39 //rad = getProperty(gen, "chamber_proculus") + getProperty(gen, "chamber_difference") * (i + 1);40 38 geno += "\n" + chambers[morphotype][i+1] + "vr=" + colors[gen]; 41 39 } … … 46 44 } 47 45 48 //if (morphotype == 0) geno += "\nn:p=0,d=\"S\"";49 46 return geno; 50 47 } … … 52 49 function setGenotype(mode) 53 50 { 54 if (mode->opt == 0) //initial 55 { 56 mode->cr.data->genes = String.deserialize(String.serialize(mode->genes)); 57 mode->cr.data->lifeparams = {"max_energy_level" : mode->energy0, "gen" : 0, "hibernated" : 0, "species" : mode->species, "reproduce" : 0, "dir" : randomDir(), "dir_counter" : Math.random(ExpProperties.dir_change_sec), "chamber_growth" : -1, "division_time" : -1}; 58 } 59 else if (mode->opt == 1) //child 60 { 61 mode->cr.data->lifeparams = {"max_energy_level" : mode->energy0, "gen" : 1 - mode->parent_lifeparams->gen, "hibernated" : 0, "species" : mode->parent_lifeparams->species, "reproduce" : 0, "dir" : randomDir(), "dir_counter" : Math.random(ExpProperties.dir_change_sec), "chamber_growth" : -1, "division_time" : -1}; 62 mode->cr.data->genes = String.deserialize(String.serialize(mode->parent_genes)); 63 } 64 else //grow 51 if (mode->opt == "growth") 65 52 { 66 53 mode->cr.data->genes = mode->parent_genes; 67 54 mode->cr.data->lifeparams = mode->parent_lifeparams; 55 } 56 57 else if (mode->opt == "birth") 58 { 59 mode->cr.data->genes = String.deserialize(String.serialize(mode->genes)); 60 mode->cr.data->lifeparams = {"max_energy_level" : mode->energy0, "gen" : mode->gen, "hibernated" : 0, "species" : mode->species, "reproduce" : 0, "dir" : randomDir(), "dir_counter" : Math.random(int(secToSimSteps(ExpProperties.dir_change_sec))), "chamber_growth" : -1, "division_time" : -1}; 61 68 62 } 69 63 } … … 192 186 if (parent1.data->lifeparams->division_time == -1 && parent2.data->lifeparams->division_time == -1) 193 187 { 194 var time = int( ExpProperties.gametoPeriod/ExpProperties.secPerStep);188 var time = int(secToSimSteps(ExpProperties.gametoPeriodSec)); 195 189 parent1.data->lifeparams->division_time = time; 196 190 parent2.data->lifeparams->division_time = time; … … 298 292 cr.energy0 = energy; 299 293 cr.energy = cr.energy0; 300 setGenotype({" cr" : cr, "parent_genes" : parent_genes, "parent_lifeparams" : parent_lifeparams, "opt" : 1, "energy0" : cr.energy0});294 setGenotype({"opt" : "birth", "cr" : cr, "gen" : 1 - parent_lifeparams->gen, "species" : parent_lifeparams->species, "energy0" : cr.energy0, "genes" : parent_genes}); 301 295 placeRandomlyNotColliding(cr); 302 296 }
Note: See TracChangeset
for help on using the changeset viewer.