Beispiel #1
0
 public override void _Process(float delta)
 {
     for (int i = 0; i < MeatArray.Count; i++)
     {
         if (!MeatToRemove.Contains(i))
         {
             temp.Add(MeatArray[i]);
         }
     }
     MeatArray.Clear();
     for (int i = 0; i < temp.Count; i++)
     {
         MeatArray.Add(temp[i]);
     }
     for (int i = 0; i < MeatToAdd.Count; i++)
     {
         MeatArray.Add(MeatToAdd[i]);
     }
     MeatToRemove.Clear();
     MeatToAdd.Clear();
     temp.Clear();
     Multimesh.InstanceCount = MeatArray.Count;
     for (int i = 0; i < MeatArray.Count; i++)
     {
         MeatArray[i].timeOnGround += TimeMultiplier * delta;
         if (MeatArray[i].timeOnGround >= MaxTimeOnGround)
         {
             MeatArray[i].decay = 1;
         }
         if (MeatArray[i].EatersCount > 0 || MeatArray[i].decay > 0)
         {
             Vector3 eatRate = (Vector3) new Vector3(1, 1, 1);
             eatRate *= (MeatArray[i].EatersCount + MeatArray[i].decay) * 0.5f * TimeMultiplier * delta;
             MeatArray[i].meatSpatial.Scale -= eatRate;
             if (MeatArray[i].meatSpatial.Scale.x < 0.05f)
             {
                 MeatArray[i].meatGone = true;
                 MeatArray[i].Collider.QueueFree();
                 AddChild(MeatArray[i].meatSpatial);
                 MeatArray[i].meatSpatial.QueueFree();
                 MeatToRemove.Add(i);
             }
         }
         Multimesh.SetInstanceTransform(i, MeatArray[i].meatSpatial.Transform);
     }
 }
 private void _on_NewSpeciesButton_pressed()
 {
     Godot.Collections.Array speciesList  = GetTree().GetNodesInGroup("Species");
     Godot.Collections.Array speciesNames = (Godot.Collections.Array) new Godot.Collections.Array();
     foreach (Node n in speciesList)
     {
         speciesNames.Add(((Species)n).GetSpeciesName());
     }
     if (speciesNames.Contains(GetNode <LineEdit>("SpeciesName/LineEdit").Text))
     {
         ShowAlert("A Species With This Name Already Exists!");
     }
     else if (GetNode <LineEdit>("SpeciesName/LineEdit").Text == "")
     {
         ShowAlert("Species Name Cannot Be Empty!");
     }
     else
     {
         Godot.Collections.Array InitialValues = (Godot.Collections.Array) new Godot.Collections.Array();
         InitialValues.Add((float)GetNode <HSlider>("Speed/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Perception/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("MatingCycle/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("HungerResistance/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("ThirstResistance/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Gestation/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("LitterSize/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Longevity/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Intelligence/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Memory/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Strength/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("HeatResistance/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("ColdResistance/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("Stamina/HSlider").Value);
         InitialValues.Add((float)GetNode <HSlider>("SleepCycle/HSlider").Value);
         float  geneticVariation = (float)GetNode <HSlider>("GeneticVariation/HSlider").Value;
         int    diet             = (int)GetNode <OptionButton>("Diet/OptionButton").Selected;
         int    model            = (int)GetNode <OptionButton>("ModelsList/OptionButton").Selected;
         String speciesName      = GetNode <LineEdit>("SpeciesName/LineEdit").Text;
         int    popSize          = (int)(GetNode <HSlider>("PopulationSize/HSlider").Value);
         Color  speciesColor     = GetNode <ColorPicker>("RepresentationsPicker/ColorPicker").Color;
         GetParent().GetParent().GetParent().GetNode <SpeciesHolder>("SpeciesHolder").AddSpecies(speciesName, popSize, speciesColor, InitialValues, geneticVariation, diet, model);
         GetNode <LineEdit>("SpeciesName/LineEdit").Clear();
     }
 }
Beispiel #3
0
    public void OnCollisorExit(Area2D area)
    {
        if (tower != null && area != null && area.Owner != null)
        {
            if (tower.canShoot && targetEnemy != null && area.Owner.GetGroups().Contains("Enemy"))
            {
                EmitSignal("idleHit", enemiesInRange);
            }

            if (enemiesInRange.Contains((Enemy)area.Owner))
            {
                enemiesInRange.Remove((Enemy)area.Owner);
            }
        }

        if (enemiesInRange.Count <= 0)
        {
            onSpot = false;
        }
        checkArray();
    }
    private void _on_EquipList_item_activated(int index)
    {
        initialEquipEdit = index;
        equipEditArray.Add("-1");
        GetNode <Label>("InitialEquipLabel/InitialEquipChange/Label").Text = GetNode <ItemList>("InitialEquipLabel/PanelContainer/TypeContainer/TypeList").GetItemText(index);

        GetNode <OptionButton>("InitialEquipLabel/InitialEquipChange/Label/OptionButton").Clear();
        GetNode <OptionButton>("InitialEquipLabel/InitialEquipChange/Label/OptionButton").AddItem("None");
        Godot.Collections.Dictionary jsonDictionary = this.GetParent().GetParent().Call("ReadData", "Character") as Godot.Collections.Dictionary;
        Godot.Collections.Dictionary charaData      = jsonDictionary["chara" + characterSelected] as Godot.Collections.Dictionary;

        jsonDictionary = this.GetParent().GetParent().Call("ReadData", "System") as Godot.Collections.Dictionary;
        Godot.Collections.Dictionary slotsData = jsonDictionary["slots"] as Godot.Collections.Dictionary;

        Godot.Collections.Dictionary equipTypesData = charaData["equip_types"] as Godot.Collections.Dictionary;
        if (slotsData.Contains("w" + index))
        {
            Godot.Collections.Dictionary weaponList = this.GetParent().GetParent().Call("ReadData", "Weapon") as Godot.Collections.Dictionary;

            Godot.Collections.Array <int> weaponArray = new Godot.Collections.Array <int>();
            foreach (string key in equipTypesData.Keys)
            {
                string kind = key[0].ToString();
                if (kind == "w")
                {
                    weaponArray.Add(Convert.ToInt32(equipTypesData[key]));
                }
            }

            foreach (string weapon in weaponList.Keys)
            {
                Godot.Collections.Dictionary weaponData = weaponList[weapon] as Godot.Collections.Dictionary;
                if (weaponArray.Contains(Convert.ToInt32(weaponData["weapon_type"])))
                {
                    equipEditArray.Add(weapon.Remove(0, 6));
                    GetNode <OptionButton>("InitialEquipLabel/InitialEquipChange/Label/OptionButton").AddItem(weaponData["name"].ToString());
                }
            }
        }
        else if (slotsData.Contains("a" + index))
        {
            Godot.Collections.Dictionary armorList = this.GetParent().GetParent().Call("ReadData", "Armor") as Godot.Collections.Dictionary;

            Godot.Collections.Array <int> armorArray = new Godot.Collections.Array <int>();
            foreach (string key in equipTypesData.Keys)
            {
                string kind = key[0].ToString();
                if (kind == "a")
                {
                    armorArray.Add(Convert.ToInt32(equipTypesData[key]));
                }
            }

            foreach (string armor in armorList.Keys)
            {
                Godot.Collections.Dictionary armorData = armorList[armor] as Godot.Collections.Dictionary;
                if (armorArray.Contains(Convert.ToInt32(armorData["armor_type"])))
                {
                    equipEditArray.Add(armor.Remove(0, 5));
                    GetNode <OptionButton>("InitialEquipLabel/InitialEquipChange/Label/OptionButton").AddItem(armorData["name"].ToString());
                }
            }
        }
        GetNode <WindowDialog>("InitialEquipLabel/InitialEquipChange").PopupCentered();
    }
Beispiel #5
0
 public bool IsItemIndexInUsed(int index)
 {
     return(_usedIndex.Contains(index));
 }
Beispiel #6
0
    void WaveEasy(int wave, string level, string side, Ball.Colors _color, string newPath, Color _ballColor)
    {
        if (colors == null && global.unusedColorsData.Contains(_color))
        {
            global.unusedColorsData.Remove(_color);
            colors.Add(_color);
            EmitSignal(nameof(getScore), side);
        }
        else if (!colors.Contains(_color) && colors.Count < wave && global.unusedColorsData.Contains(_color))
        {
            global.unusedColorsData.Remove(_color);
            colors.Add(_color);
            EmitSignal(nameof(getScore), side);
        }
        else if (!colors.Contains(_color) && colors.Count < wave && !global.unusedColorsData.Contains(_color))
        {
            // GD.Print("wrong place for " + _color);
            EmitSignal(nameof(die), newPath, level);
        }
        else if (!colors.Contains(_color) && colors.Count >= wave && global.unusedColorsData.Contains(_color))
        {
            // GD.Print(_color + " doesnt belong " + side);
            EmitSignal(nameof(die), newPath, level);
        }
        else if (!colors.Contains(_color) && colors.Count >= wave && !global.unusedColorsData.Contains(_color))
        {
            // GD.Print(_color + " shouldnt be " + side);
            EmitSignal(nameof(die), newPath, level);
        }
        else if (colors.Contains(_color) && !global.unusedColorsData.Contains(_color))
        {
            EmitSignal(nameof(getScore), side);
        }

        // if(colors.Contains(_color)){
        //     GD.Print(_color + " goes " + side);
        // }

        // GD.Print("unused_colors_data : " + global.unusedColorsData);
    }