private int getEqalusObjectIndex(List <alias_data_struct> list_struct, alias_data_struct data_struct) { int returnvalue = -1; for (int i = 0; i < list_struct.Count; i++) { if (list_struct[i].Equals(data_struct)) { returnvalue = i; break; } } return(returnvalue); }
public override void InstallMonster(int stair, int floor, int level, string _name) { alias_data_struct alias_str = new alias_data_struct(stair, floor, 0.0f, level); List <alias_data_struct> loadStructData; if (alias_data_dic.ContainsKey(_name)) { if (alias_data_dic.TryGetValue(_name, out loadStructData)) { alias_data_dic.Remove(_name); } } else { loadStructData = new List <alias_data_struct>(); } loadStructData.Add(alias_str); loadStructData.Sort(delegate(alias_data_struct x, alias_data_struct y) { if (x.Tileindex < y.Tileindex) { return(-1); } else if (x.Tileindex > y.Tileindex) { return(1); } else if (x.StairIndex < y.StairIndex) { return(-1); } else if (x.StairIndex > y.StairIndex) { return(1); } else { return(0); } }); alias_data_dic.Add(_name, loadStructData); Debug.Log("Saved " + _name + " / " + alias_str.ToString() + "/ List Count" + loadStructData.Count + "/ Dictionary Count" + alias_data_dic.Count); }
public override void UpdateMonster(string obj_name, params object[] parameter) { List <alias_data_struct> load_struct; int search_index; int stair = (int)parameter[0]; int tile = (int)parameter[1]; float hp = (float)parameter[2]; if (alias_data_dic.TryGetValue(obj_name, out load_struct) && (search_index = getEqalusObjectIndex(load_struct, stair, tile)) >= 0) { alias_data_struct objDataStruct = load_struct[search_index]; objDataStruct.HpValue = hp; load_struct.RemoveAt(search_index); load_struct.Insert(search_index, objDataStruct); alias_data_dic.Remove(obj_name); alias_data_dic.Add(obj_name, load_struct); Debug.Log("Updated " + obj_name + " / " + objDataStruct.ToString()); } }
public bool Equals(alias_data_struct other) { return((other.stairIndex == this.stairIndex) && (other.tileIndex == this.tileIndex)); }