Ignore:
Timestamp:
07/31/16 23:26:43 (8 years ago)
Author:
oriona
Message:

Refactoring, change of foraminifera direction at world boundary added.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • experiments/frams/foraminifera/data/scripts/foraminifera.inc

    r552 r554  
    3030function createForamMorphology(morphotype, gen, chamber_num)
    3131{
    32         var rad = getProperty(gen, "chamber_proculus");
    3332        var geno = "//0\nm:Vstyle=foram\n" + chambers[morphotype][0] + "vr=" + colors[gen];
    3433
     
    3736        for (var i = 0; i < chamber_num; i++)
    3837        {
    39                 //rad = getProperty(gen, "chamber_proculus") + getProperty(gen, "chamber_difference") * (i + 1);
    4038                geno += "\n" + chambers[morphotype][i+1]  + "vr=" +  colors[gen];
    4139        }
     
    4644        }
    4745
    48         //if (morphotype == 0) geno += "\nn:p=0,d=\"S\"";
    4946        return geno;
    5047}
     
    5249function setGenotype(mode)
    5350{
    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")
    6552        {
    6653                mode->cr.data->genes = mode->parent_genes;
    6754                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
    6862        }
    6963}
     
    192186                                        if (parent1.data->lifeparams->division_time == -1 && parent2.data->lifeparams->division_time == -1)
    193187                                        {
    194                                                 var time = int(ExpProperties.gametoPeriod/ExpProperties.secPerStep);
     188                                                var time = int(secToSimSteps(ExpProperties.gametoPeriodSec));
    195189                                                parent1.data->lifeparams->division_time = time;
    196190                                                parent2.data->lifeparams->division_time = time;
     
    298292        cr.energy0 = energy;
    299293        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});
    301295        placeRandomlyNotColliding(cr);
    302296}
Note: See TracChangeset for help on using the changeset viewer.