Exemplo n.º 1
0
    protected override void OnEnergyEnter(EnergyBehavior energyBehavior)
    {
        var       row     = ParentBoard.GetNotNodes(Behavior.transform.position.x, Behavior.transform.position.y);
        BoardNode closest = null;

        if (row.Count == 1)
        {
            closest = row[0];
        }
        else
        {
            float closestDist = float.MaxValue;
            foreach (var n in row)
            {
                float dist = Vector3.Distance(Behavior.transform.position, n.Behavior.transform.position);
                if (closest == null || dist < closestDist)
                {
                    closestDist = dist;
                    closest     = n;
                }
            }
        }

        if (closest != null)
        {
            DeferEnergyEnterTo(closest, energyBehavior);
        }
    }
Exemplo n.º 2
0
 protected override void OnEnergyEnter(EnergyBehavior energyBehavior)
 {
     base.OnEnergyEnter(energyBehavior);
     if (Energy == GameData.Constants.FillNodeFillRequirement)
     {
         ParentBoard.RemoveNode(this);
         Behavior.gameObject.SetActive(false);
     }
 }
Exemplo n.º 3
0
    protected override void OnEnergyEnter(EnergyBehavior energyBehavior)
    {
        base.OnEnergyEnter(energyBehavior);

        if (Energy == MaxEnergy)
        {
            // Create Basic Node
            var data = new BoardNodeData();
            data.Affiliation    = Affiliation;
            data.Type           = BoardNodeType.Basic;
            data.Position       = Position;
            data.StartingEnergy = MaxEnergy;
            ParentBoard.ReplaceNode(this, data);
            Behavior.gameObject.SetActive(false);
        }
    }
Exemplo n.º 4
0
 protected virtual void OnEnergyEnter(EnergyBehavior energyBehavior)
 {
     if (energyBehavior.EnergyObj.Affiliation == Affiliation.Value || Affiliation.Value == BoardNodeAffiliation.Neutral)
     {
         Affiliation.Value = energyBehavior.EnergyObj.Affiliation;
         float newValue = Energy + 1;
         if (newValue <= GameData.Constants.NodeMaxEnergy)
         {
             Energy.Value = newValue;
         }
     }
     else
     {
         float newValue = Energy - 1;
         if (newValue >= 0)
         {
             Energy.Value = newValue;
             if (newValue == 0)
             {
                 Affiliation.Value = BoardNodeAffiliation.Neutral;
             }
         }
     }
 }
Exemplo n.º 5
0
 public Energy(EnergyBehavior behavior)
 {
     Behavior = behavior;
 }
Exemplo n.º 6
0
 protected static void DeferEnergyEnterTo(BoardNode node, EnergyBehavior energy)
 {
     node.OnEnergyEnter(energy);
 }