public async Task <IActionResult> Edit(int id, [Bind("ID,BacteriaName,x,y,boxID")] Bacteria bacteria)
        {
            if (id != bacteria.ID)
            {
                return(NotFound());
            }

            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(bacteria);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!BacteriaExists(bacteria.ID))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(bacteria));
        }
Example #2
0
    public IEnumerator StartInvasionCoroutine()
    {
        BacteriaInvasionConfig config = m_invasionsConfigurations[m_currentInvasionIndex++];

        m_invasion = new List <Bacteria>(config.bacteriasCount);
        Transform[] spawnPoints = config.spawnPoints; int spawnPointsCount = spawnPoints.Length;
        Transform[] targets = config.targets; int targetsCount = targets.Length;
        int         bacteriasCount = config.bacteriasCount - m_reductionPerAnticipationRank * TechTree.TechRank(TechID.Evol_Anticipation);

        int i = 0;

        while (i < bacteriasCount)
        {
            for (int j = 0; j < m_bacteriasCountSpawnAtATime; j++)
            {
                Bacteria bacteria = Instantiate(config.bacteria);
                bacteria.transform.SetParent(transform);
                bacteria.transform.position = spawnPoints[i % spawnPointsCount].position;
                bacteria.AttackPosition(targets[i % targetsCount].position);
                bacteria.SetProperties(config.bacteriasProperties);
                bacteria.resourcesValue = config.resourcesValuesOnDie;
                m_invasion.Add(bacteria);
                i++;
            }
            yield return(new WaitForSeconds(m_timeBetweenBacteriasSpawn));
        }
    }
Example #3
0
    public void setPhase(string text)
    {
        valuePhase = int.Parse(text);
        switch (text)
        {
        case "1":

            bacterias = new Bacteria[] {
                listBacterias[6],
                listBacterias[1],
                listBacterias[2],
                listBacterias[3],
                listBacterias[8]
            };
            contaminant    = new Contaminant("Diesel", 300f, 240f, Type.Diesel);
            variables      = new VariablesEnviroment(5.7f, 25f, Moisture.medium);
            objectiveValue = ((30f) / contaminant.qtdMax);
            break;

        case "2":
            bacterias = new Bacteria[] {
                listBacterias[0],
                listBacterias[1],
                listBacterias[2],
                listBacterias[3],
                listBacterias[4]
            };
            contaminant    = new Contaminant("Biodiesel", 300f, 225f, Type.Biodiesel);
            variables      = new VariablesEnviroment(6.9f, 27f, Moisture.low);
            objectiveValue = ((30f) / contaminant.qtdMax);
            break;

        case "3":
            bacterias = new Bacteria[] {
                listBacterias[0],
                listBacterias[1],
                listBacterias[2],
                listBacterias[3],
                listBacterias[4]
            };
            contaminant    = new Contaminant("Diesel", 300f, 250f, Type.Diesel);
            variables      = new VariablesEnviroment(6f, 16f, Moisture.high);
            objectiveValue = ((30f) / contaminant.qtdMax);
            break;

        case "4":
            bacterias = new Bacteria[] {
                listBacterias[0],
                listBacterias[1],
                listBacterias[2],
                listBacterias[4],
                listBacterias[5]
            };
            contaminant    = new Contaminant("Diesel", 300f, 280f, Type.Biodiesel);
            variables      = new VariablesEnviroment(6.6f, 31f, Moisture.low);
            objectiveValue = ((30f) / contaminant.qtdMax);
            break;
        }
    }
Example #4
0
        public ActionResult DeleteConfirmed(int id)
        {
            Bacteria bacteria = db.Bacteria.Find(id);

            db.Bacteria.Remove(bacteria);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
    //bool isDead;
    //bool damaged;


    // Use this for initialization
    void Start()
    {
        //health stats possibly working, can't check while colliders aren't functioning.
        currentHealth = startHealth;
        GameObject enemyDamage = GameObject.Find("Bacteria 1");

        bacteriaScript = enemyDamage.GetComponent <Bacteria>();
    }
Example #6
0
 private float calculateEatNegative(Bacteria b, float sum, int qtdNutri, int random)
 {
     if (b.qtd < 10)
     {
         return(1);
     }
     return((float)((Math.Abs(qtdNutri - random) * absRateNutrient)));
 }
Example #7
0
    void OnCollisionEnter(Collision col)
    {
        Bacteria bacteria = col.transform.GetComponent <Bacteria>();

        if (bacteria != null)
        {
            bacteria.KillMe();
        }
    }
Example #8
0
    void Start()
    {
        bacteriaScript = GetComponent <Bacteria> ();
        uiCanvas       = (Canvas)FindObjectOfType(typeof(Canvas));

        uiObject = Instantiate(enemyUIPrefab) as GameObject;
        uiObject.transform.SetParent(uiCanvas.transform);
        uiImage = uiObject.GetComponentInChildren <Image>();
    }
Example #9
0
 public BacterialState()
 {
     bacteriaTypes = new Dictionary <BacteriumType, Bacteria>();
     foreach (BacteriumType bt in Enum.GetValues(typeof(BacteriumType)))
     {
         bacteriaTypes[bt] = new Bacteria(bt, amt: bInits[bt].Item1, optimal: bInits[bt].Item2,
                                          growthRate: bInits[bt].Item3, productionRate: bInits[bt].Item4);
     }
 }
Example #10
0
 public void executeBioaugmentation(int pos)
 {
     bioaugmentationPoupUp.SetActive(false);
     listBacterias[pos].qtd += (int)(500 * absRateNutrient);
     bacteriaEffectBiaum     = listBacterias[pos];
     applyAction(Action.Bioaumentation, (int)(valueBioaum), new Vector3(6.66f, 1, 1), costBioaum);
     closeSelectAction();
     enableAllButtons();
 }
Example #11
0
 public static Bacteria[] getClone(Bacteria[] bacs)
 {
     Bacteria[] bacsTemp = new Bacteria[5];
     for (int i = 0; i < 5; i++)
     {
         bacsTemp[i] = (Bacteria)bacs[i].MemberwiseClone();
     }
     return(bacsTemp);
 }
        // GET: Bacterias/CreateBacteria/1/1
        public IActionResult CreateBacteria(int X, int Y, int boxID)
        {
            var bacteria = new Bacteria();

            bacteria.x     = X;
            bacteria.y     = Y;
            bacteria.boxID = boxID;
            return(View(bacteria));
        }
Example #13
0
 public ActionResult Edit([Bind(Include = "ID,Name,Specie,Taxonomy,Definition,GramStaining,Shape,OxygenRequirement,ClinicalCharacteristics,Prevalance,Occurence,Mortality,InvolinDiseases,CausingInfections,Likeness,Treatment,Antibiotics,MDR,InteractionWithOrganism")] Bacteria bacteria)
 {
     if (ModelState.IsValid)
     {
         db.Entry(bacteria).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(bacteria));
 }
Example #14
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = (GroupNum != null ? GroupNum.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (Bacteria != null ? Bacteria.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (ClusterType != null ? ClusterType.GetHashCode() : 0);
         return(hashCode);
     }
 }
        public async Task <IActionResult> Create([Bind("ID,BacteriaName,x,y,boxID")] Bacteria bacteria)
        {
            if (ModelState.IsValid)
            {
                _context.Add(bacteria);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(bacteria));
        }
Example #16
0
    // Start is called before the first frame update
    void Start()
    {
        Antibiotic ab = new Antibiotic("Gram Negative");
        Bacteria   ba = new Bacteria();
        Bacteria   bb = new Bacteria("Gram Negative");
        Virus      vi = new Virus();

        ab.normalAttack(ba);
        ab.normalAttack(bb);
        ab.normalAttack(vi);
    }
Example #17
0
    protected virtual float CheckEating(Collider2D col)
    {
        if (col.CompareTag("Bacteria"))
        {
            Bacteria bacteriaInfo = col.GetComponent <Bacteria>();
            if (bacteriaInfo.GetCurrentMass() < currentMass)
            {
                ChangeColor(bacteriaInfo.CurrentColor, bacteriaInfo);

                bacteriaInfo.Die();


                if (currentMass < 100)
                {
                    currentMass += bacteriaInfo.GetCurrentMass() * 0.2f;
                }
                else
                {
                    currentMass += bacteriaInfo.GetCurrentMass() * 0.05f;
                }

                LerpScale();
            }
            else if (bacteriaInfo.GetCurrentMass() > currentMass)
            {
                if (this.GetComponent <Player>() != null)
                {
                    this.GetComponent <Player>().Die();
                }
                else
                {
                    this.Die();
                }
            }

            else if (bacteriaInfo.GetCurrentMass() == currentMass)
            {
                //Do nothing
            }
            return(bacteriaInfo.GetCurrentMass());
        }
        else if (col.CompareTag("Player"))
        {
            Player player = col.GetComponent <Player>();

            if (this.currentMass > player.GetCurrentMass())
            {
                ScoreManager.won = false;
                player.Die();
            }
        }

        return(-1.0f);
    }
Example #18
0
    public void StopInvasion()
    {
        for (int i = 0; i < m_invasion.Count; i++)
        {
            Bacteria bacteria = m_invasion[i];
            if (bacteria)
            {
                Destroy(bacteria.gameObject);
            }
        }

        m_invasion = null;
    }
Example #19
0
        // GET: Bacteria/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Bacteria bacteria = db.Bacteria.Find(id);

            if (bacteria == null)
            {
                return(HttpNotFound());
            }
            return(View(bacteria));
        }
Example #20
0
    protected void UpdateRealtimeProperties()
    {
        float multiplierLevel;

        if (HasProperty(BacteriaProperty.Multiplier, out multiplierLevel))
        {
            if (Random.Range(0f, 1f) < (BacteriasManager.BacteriaPropertyAtLevel(BacteriaProperty.Multiplier, multiplierLevel) * Time.deltaTime))
            {
                Bacteria bacteria = Instantiate(this);
                bacteria.m_commandsQueue = new Queue <UnitCommands.UnitCommand>(m_commandsQueue);
                bacteria.transform.SetParent(transform.parent);
                BacteriasManager.singleton.AddBacteriaToInvasion(bacteria);
            }
        }
    }
Example #21
0
    protected override float CheckEating(Collider2D col)
    {
        float returnVal = base.CheckEating(col);

        if (col.CompareTag("Bacteria"))
        {
            Bacteria bacteriaInfo = col.GetComponent <Bacteria>();
            if (bacteriaInfo.GetCurrentMass() < currentMass)
            {
                ScoreManager.playerScore += (int)bacteriaInfo.GetCurrentMass() * ScoreManager.scoreMultiplyer;
                EatingAudio();
            }
        }

        return(returnVal);
    }
Example #22
0
    void Awake()
    {
        listBacterias  = Bacteria.getClone(ScenesManager.bacterias);
        contaminant    = ScenesManager.contaminant.getClone();
        variables      = ScenesManager.variables.getClone();
        objectiveValue = ScenesManager.objectiveValue;

        parameters          = new Parameters();
        log                 = new LogEvent();
        manageLanguagePhase = FindObjectOfType <ManageLanguagePhase>();
        taxa                = parameters.taxa;
        scorePercentageLost = parameters.scorePercentageLost;
        numDaysEffect       = parameters.numDaysEffect;
        numberDayCicles     = parameters.numberDayCicles;
        timeDay             = parameters.timeDay;

        scoreLoss10days = parameters.scoreLoss10days;
        costAtenuation  = parameters.costAtenuation;
        costBioest      = parameters.costBioest;
        costBioaum      = parameters.costBioaum;


        valueAtenuation = parameters.valueAtenuation;
        valueBioest     = parameters.valueBioest;
        valueBioaum     = parameters.valueBioaum;

        day              = 1;
        score            = 300;
        previousScore    = score;
        actionEffect     = Action.None;
        absRateNutrient  = 1;
        globalEnviroment = -2;

        scorePrevious       = score;
        contaminantPrevious = contaminant.percentage;
        valuePrevious       = contaminant.qtd;
        degRate             = new float[5];
        dataDegradeted      = new List <float>();

        for (int i = 0; i < 5; i++)
        {
            degRate[i] = listBacterias[i].degRate;
        }
    }
Example #23
0
 public Bacteria AddBacteria(Vector3?position = null, Bacteria parentBacteria = null)
 {
     if (bacteriesCount <= Capasity)
     {
         Bacteria newBacteria = Instantiate <Bacteria>(bacteria, gameObject.transform);
         if (parentBacteria)
         {
             List <int> tmp = new List <int>(parentBacteria.commandList);
             newBacteria.parent      = parentBacteria;
             newBacteria.commandList = tmp;
         }
         if (position != null)
         {
             newBacteria.transform.position = (Vector3)position;
         }
         bacteriesCount += 1;
         return(newBacteria);
     }
     return(null);
 }
Example #24
0
    private void Replicate(Bacteria bacteria)
    {
        // Replication
        if (bacteria.replicationCooldown <= 0 && _Active.Count < MAX_NB_OF_BACTERIAS)
        {
            // Create new fresh bacteria
            Origin     origin = bacteria.gameObject.GetComponent <Origin>();
            GameObject clone  = Object.Instantiate(YellowPageUtils.GetSourceObject(holder, origin.sourceObjectKey));
            clone.transform.position = bacteria.transform.position;

            // Bind it to FYFY
            GameObjectManager.bind(clone);

            // Reset cooldown
            bacteria.replicationCooldown = bacteria.replicationDelay;
        }
        else
        {
            bacteria.replicationCooldown -= Time.deltaTime;
        }
    }
Example #25
0
 private void Update()
 {
     //Debug.Log("numberOfBacteriasInQueue: " + numberOfBacteriasInQueue);
     //Debug.Log("startGenerating: " + startGenerating);
     if (numberOfBacteriasInQueue > 0 && startGenerating)
     {
         if (Time.timeSinceLevelLoad > startAfterTime)
         {
             startAfterTime += repeatingTime;
             var bacteria = Instantiate(bacteriaPrefab, transform.position, Quaternion.identity);
             //var bacteria = Instantiate(Resources.Load("Bacteria/Bacteria") as GameObject, transform.position, Quaternion.identity);
             Bacteria bac = bacteria.GetComponent <Bacteria>();
             bac.SetNucleusSequence(GenerateNucleusSequence(difficultyLevel));
             bac.SetSpeed(newCellSpeed);
             bac.SetWaypoints(waypoints);
             //bac.transform.parent = bacteriaHolder.transform;
             if (numberOfBacteriasInQueue > 0)
             {
                 numberOfBacteriasInQueue--;
             }
         }
     }
 }
Example #26
0
    void OnTriggerEnter2D(Collider2D col)
    {
        Enemy enemy = col.GetComponent <Enemy>();

        if (enemy != null)
        {
            if (enemy is Bacteria)
            {
                Bacteria b = enemy as Bacteria;
                b.splat.Play();
            }
            enemy.Die();
            if (owner == Player.PlayerNum.PlayerOne)
            {
                GameManager.instance.p1Score += 25;
            }
            else
            {
                GameManager.instance.p2Score += 25;
            }
        }
        hasHit = true;
    }
Example #27
0
    public void RunLifeCycle()
    {
        //Debug.Log("started life");
        //count total neighgour's bacteria amount
        float totalBacteria = 0f;

        if (amount < 0.0011f)
        {
            return;
        }
        foreach (GameObject neighbour in neighbours)
        {
            if (float.IsNaN(neighbour.GetComponent <Bacteria>().amount))
            {
                return;
            }
            totalBacteria += neighbour.GetComponent <Bacteria>().amount;
        }
        //plus self
        totalBacteria += amount;
        if (totalBacteria <= 0.0001f)
        {
            return;
        }
        if (GetComponent <GridCell>().antibiotics.Count > 0)
        {
            //die 100 or all (max(amount-100, 0))
            Debug.Log("killing bac");
            amount = Mathf.Max(amount - 100.0f, 0f);
            UpdateGridColor();
            previousColor = GetComponent <SpriteRenderer>().color;
            return;
        }
        float newBacteriaAmount = amount * 1 / sqrt2;
        float mutationRnd       = UnityEngine.Random.Range(0f, 100f);

        if (mutationRnd < baseMutationRate * 100f && Time.time > 60f)
        {
            //mutate
            if (nextGenBacteriaType != null)
            {
                Mutate();
                Destroy(GetComponent <Bacteria>());
                gameObject.AddComponent(nextGenBacteriaType);
                (GetComponent(nextGenBacteriaType.Name) as Bacteria).row        = row;
                (GetComponent(nextGenBacteriaType.Name) as Bacteria).col        = col;
                (GetComponent(nextGenBacteriaType.Name) as Bacteria).neighbours = neighbours;
                return;
            }
        }
        float    randNeighbour = UnityEngine.Random.Range(0, neighbours.Count - 0.01f);
        Bacteria neighbourBacteria
            = neighbours[Mathf.FloorToInt(randNeighbour)].GetComponent <Bacteria>();

        neighbourBacteria.baseColor = this.baseColor;

        if (amount < GameControl.maxBacteriaPerCell)
        {
            neighbourBacteria.amount
                += newBacteriaAmount;
            float oldAmount = amount;
            amount *= 1 / sqrt2;
            GameControl.self.totalBacteria += (newBacteriaAmount + amount - oldAmount);
        }
        else
        {
            float oldAmount = amount;
            amount *= 1 / sqrt3;                  //sqrt of 1/3
            GameControl.self.totalBacteria += (amount - oldAmount);
        }


        //update my color
        UpdateGridColor();
    }
Example #28
0
    private void InitBacteria(GameObject go)
    {
        Bacteria b = go.GetComponent <Bacteria>();

        b.replicationCooldown = Random.Range(0, b.replicationDelay);
    }
Example #29
0
 protected void ChangeColor(Color addedColor, Bacteria eatenBacteria)
 {
     currentColor = ColorCalculator.MergeColors(currentColor, currentMass, addedColor, eatenBacteria.GetCurrentMass());
     ApplyCurrentColor();
 }
Example #30
0
 // Use this for initialization
 void Start()
 {
     bacteria = GetComponent <Bacteria>();
 }