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(); } }
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(); }
public bool IsItemIndexInUsed(int index) { return(_usedIndex.Contains(index)); }
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); }