- Home /
Problem Checking A List
Well...it seems I'm re-approaching this problem. What I'm experiencing is...uhm...I guess you could say when I "despawn" a monster (the player has killed it), and "respawn" it...it adds all the moves to the list all over again. For example:
Monster A has 2 moves in his list: Scratch & Growl... Monster A dies... Monster A respawns... Monster A now has 4 moves in his list: Scratch & Growl...AND...Scratch & Growl...
Here's my code:
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
public class MonsterMoves : MonoBehaviour {
public List<BaseMove> moves;
public int level;
public Scratch scratch = new Scratch();
public Growl growl = new Growl();
public FireBall fireball = new FireBall();
public PowerUp powerup = new PowerUp();
void Start(){
moves = gameObject.GetComponent<Monster>().monstersMoves;
level = gameObject.GetComponent<Monster>().level;
}
void Update(){
level = gameObject.GetComponent<Monster>().level;
SetupMoves(level);
}
private void SetupMoves(int level){
if(level >= 1 && !moves.Contains(scratch)){
moves.Add(scratch);
}
if(level >= 1 && !moves.Contains(growl)){
moves.Add(growl);
}
if(level >= 7 && !moves.Contains(fireball)){
moves.Add(fireball);
}
if(level >= 10 && !moves.Contains(powerup)){
moves.Add(powerup);
}
Any ideas on what I'm over-looking?
SO I'VE MADE SOME CHANGES. Now I call the function whenever the monster is first created, and if/when it levels up. Here's the new script for the MonsterMoves...
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
[System.Serializable]
public class Moves : MonoBehaviour {
public List<Move> moves;
public List<Move> movesToLearn = new List<Move>();
void Start(){
moves = gameObject.GetComponent<Monster>().monstersMoves;
}
public void AddMoves(int level, List<Move> moves){
foreach(Move move in movesToLearn){
if(level >= move.levelLearned){
if(!moves.Contains(move)){
moves.Add(move);
}
}
}
}
}
I call this function in the script that handles all of the properties of the monster. If the list of Moves already has the move in it, I don't want to add it again. However, it's still not working properly. It's STILL adding the move to the list, even if it's already in there.
Your answer

Follow this Question
Related Questions
A node in a childnode? 1 Answer
NullReference when updating a List 4 Answers
bool[] to bool list 1 Answer
List<> Other elements problems 1 Answer
Removing Missing Objects From A List 1 Answer