public void initFromSaveData(DgInformationData data,PlayerData playerdata) { //Debug.Log(data.CurrentDgParameter.ItemDetectionPowers[0]); CurrentDungeonParameter = data.CurrentDgParameter.toDgParameter(); ; CurrentFloor = new Floor(data.CurrenFloor); CurrentFloorNumber = data.CurrentFloorNumber; CurrentRank = data.CurrentRank; CurrentTurnCount = data.CurrentTurnCount; TotalTurnCount = data.TotalTurnCount; List<Floor> floors = new List<Floor>(); foreach (FloorData floor in data.GeneratedFloors) { floors.Add(new Floor(floor)); } GeneratedFloors = floors.ToArray(); CurrentFloorIndex = data.CurrentFloorIndex; StairsPosition = data.StairsPosition; BookUnknownNames = data.BookNames; CaneUnknownNames = data.CaneNames; PotUnknownNames = data.PotNames; PotionUnknownNames = data.PotionNames; BangleUnknownNames = data.BangleNames; CurrentShopMode = data.CurrentShopMode; CurrentDungeonParameter.DistributionTable.setUnknownItemName(BookUnknownNames); CurrentDungeonParameter.DistributionTable.setUnknownItemName(CaneUnknownNames); CurrentDungeonParameter.DistributionTable.setUnknownItemName(PotUnknownNames); CurrentDungeonParameter.DistributionTable.setUnknownItemName(PotionUnknownNames); CurrentDungeonParameter.DistributionTable.setUnknownItemName(BangleUnknownNames); // 鑑定力に応じた鑑定状態のセットをできるようにする setInitalDetectionLevel(); for (int i = 0; i < data.ItemTypeStrs.Length; i++) { updateItemDetectionLevel(Type.GetType(data.ItemTypeStrs[i]), data.DLevels[i]); } foreach (ItemEntityData item in data.Items) { ObjectEntityFactory.enableItemEntityFromSavedata(item, CurrentDungeonParameter.DistributionTable.ItemTable); } foreach (TrapEntityData trap in data.Traps) ObjectEntityFactory.enableTrapEntityFromSavedata(trap); Dictionary<MyCharacterController,CharacterEntityData> dic = new Dictionary<MyCharacterController,CharacterEntityData>(); foreach (CharacterEntityData enemy in data.Enemys) { var entity = ObjectEntityFactory.enableCharacterEntityFromSaveData(enemy); if(entity != null && enemy != null)dic.Add(entity,enemy); } foreach (MyCharacterController enemy in Enemys) { var find = Array.FindAll(data.Enemys, e => Array.Exists(dic[enemy].AttackerLog, log => log == e.DataID)).ToList(); foreach (var pair in dic) { if (find.Exists(f => f.DataID == pair.Value.DataID)) { enemy.AttackerLog.push(pair.Key); } } if (Array.Exists(dic[enemy].AttackerLog, log => log == playerdata.EntityData.DataID)) { int index = Array.IndexOf(dic[enemy].AttackerLog, playerdata.EntityData.DataID); enemy.AttackerLog.Insert(index, GameController.MainPlayer); } int idx = 0; foreach (var log in enemy.AttackerLog) { Debug.logger.Log(enemy.name, string.Format("[{0}]:{1}", idx++, log.name)); } } MoveResevationList = new Deque<EnemyController>(); //AttackResevationList = new Stack<EnemyController>(); GameController.PlayerUIController.setFloorNum(CurrentFloorNumber); ListOfUnpaidCommodityWhichNotExistOnFiled = new List<ItemBasis>(); foreach (ItemData item in data.ListOfUnpaidCommodityWhichNotExistOnFiled) { ListOfUnpaidCommodityWhichNotExistOnFiled.Add(item.toItem()); } int xm = (int)CurrentFloor.Size.x; int ym = (int)CurrentFloor.Size.y; TileTypeTable = new TileBasis.TileType[xm][]; //GameController.PlayingLogger.addLogFormat("{0} {1}",xm,ym); for (int x = 0; x < xm; x++) { var ys = data.TileTypeTable.Skip(x * ym).Take(ym).ToArray(); //GameController.PlayingLogger.addLogFormat("{0} {1}", x * ym, ys); TileTypeTable[x] = ys; } }
public void init(DungeonParameter param) { CurrentDungeonParameter = param; CurrentTurnCount = 0; TotalTurnCount = 0; Enemys = new List<MyCharacterController>(); Items = new List<ItemEntity>(); Traps = new List<TrapEntity>(); createUnknownItemNameTable(param.DistributionTable); param.DistributionTable.setUnknownItemName(BookUnknownNames); param.DistributionTable.setUnknownItemName(CaneUnknownNames); param.DistributionTable.setUnknownItemName(PotUnknownNames); param.DistributionTable.setUnknownItemName(PotionUnknownNames); param.DistributionTable.setUnknownItemName(BangleUnknownNames); ItemDetectionLevelTable = new Dictionary<Type, ItemBasis.DetectionLevel>(); setInitalDetectionLevel(); MoveResevationList = new Deque<EnemyController>(); GameController.PlayerUIController.setFloorNum(CurrentFloorNumber); ListOfUnpaidCommodityWhichNotExistOnFiled = new List<ItemBasis>(); TileTypeTable = new TileBasis.TileType[(int)param.MaxMapSize.x][]; for (int x = 0; x < TileTypeTable.GetLength(0); x++) { TileTypeTable[x] = new TileBasis.TileType[(int)param.MaxMapSize.y]; for (int y = 0; y < (int)param.MaxMapSize.y; y++) { TileTypeTable[x][y] = TileBasis.TileType.UNBREAKABLEWALL; } } }
public void init(TileBasis tile,DungeonParameter dgparam) { //Debug.Log(tile.Type); Type = tile.Type; string newtag = ""; //Sprite newsprite = null; switch (Type) { case TileBasis.TileType.ROAD: newtag = TagList.Road; SpriteRenderer.sprite = dgparam!=null? dgparam.CurrentRoadSprite:GameSkins.getTileSprite(TileBasis.TileType.ROAD,0); break; case TileBasis.TileType.WALL: newtag = TagList.Wall; SpriteRenderer.sprite = dgparam != null ? dgparam.CurrentWallSprite : GameSkins.getTileSprite(TileBasis.TileType.WALL,0); ; break; case TileBasis.TileType.WATERWAY: newtag = TagList.Wall; SpriteRenderer.sprite = dgparam != null ? dgparam.CurrentWaterWaySprite : GameSkins.getTileSprite(TileBasis.TileType.WATERWAY,0); ; break; case TileBasis.TileType.UNBREAKABLEWALL: newtag = TagList.Wall; SpriteRenderer.sprite = dgparam != null ? dgparam.CurrentWallSprite : GameSkins.getTileSprite(TileBasis.TileType.WALL, 0); ; break; } Entity = tile; this.transform.tag = newtag; SpriteRenderer.sortingLayerName = newtag; gameObject.layer = LayerMask.NameToLayer(newtag); this.name = Type.ToString(); }
public void changeTileType(TileBasis.TileType newtype, string parentname, int spritenumber) { Type = newtype; TileBasis tile = road; string newtag = ""; string layername = ""; //Sprite newsprite = null; switch (newtype) { case TileBasis.TileType.ROAD: tile = road; newtag = TagList.Road; layername = newtag; break; case TileBasis.TileType.WALL: tile = wall; newtag = TagList.Wall; layername = newtag; break; case TileBasis.TileType.WATERWAY: tile = waterway; newtag = TagList.WaterWay; layername = newtag; break; case TileBasis.TileType.OVERLAPROAD: tile = road; newtag = TagList.Road; layername = TagList.OverlapRoad; break; case TileBasis.TileType.UNBREAKABLEWALL: tile = wall; newtag = TagList.Wall; layername = newtag; break; } //Debug.Log(newsprite.name); //Debug.LogFormat("{0}",newtype); Entity = tile; this.transform.tag = newtag; SpriteRenderer.sprite = GameSkins.getTileSprite(parentname,spritenumber); SpriteRenderer.sortingLayerName = layername; gameObject.layer = LayerMask.NameToLayer(newtag); this.name = Entity.Name + (newtype == TileBasis.TileType.OVERLAPROAD ? @"(Overlap)" : ""); ; //throw new NotImplementedException(); }
public void changeTileType(TileBasis.TileType newtype, int spritenumber) { Type = newtype; TileBasis tile = road; string newtag = ""; Sprite newsprite = null; string layername = ""; switch (newtype) { case TileBasis.TileType.ROAD: tile = road; newtag = TagList.Road; //Debug.LogFormat("B:{0}:{1},{2}", newtype, spritenumber, GameSkins.RoadSprites.Length); spritenumber = spritenumber > GameSkins.RoadSprites.Length ? 0 : spritenumber; //Debug.LogFormat("A:{0}:{1},{2}", newtype, spritenumber, GameSkins.RoadSprites.Length); newsprite = GameSkins.RoadSprites[spritenumber]; layername = newtag; break; case TileBasis.TileType.WALL: tile = wall; newtag = TagList.Wall; spritenumber = spritenumber > GameSkins.WallSprites.Length ? 0 : spritenumber; newsprite = GameSkins.WallSprites[spritenumber]; layername = newtag; break; case TileBasis.TileType.WATERWAY: tile = waterway; newtag = TagList.WaterWay; spritenumber = spritenumber > GameSkins.WaterWaySprites.Length ? 0 : spritenumber; newsprite = GameSkins.WaterWaySprites[spritenumber]; layername = newtag; break; case TileBasis.TileType.OVERLAPROAD: tile = road; newtag = TagList.Road; //Debug.LogFormat("B:{0}:{1},{2}", newtype, spritenumber, GameSkins.RoadSprites.Length); spritenumber = spritenumber > GameSkins.RoadSprites.Length ? 0 : spritenumber; //Debug.LogFormat("A:{0}:{1},{2}", newtype, spritenumber, GameSkins.RoadSprites.Length); newsprite = GameSkins.RoadSprites[spritenumber]; layername = TagList.OverlapRoad; break; case TileBasis.TileType.UNBREAKABLEWALL: tile = wall; newtag = TagList.Wall; spritenumber = spritenumber > GameSkins.WallSprites.Length ? 0 : spritenumber; newsprite = GameSkins.WallSprites[spritenumber]; layername = newtag; break; } Debug.Log(newsprite.name); Entity = tile; this.transform.tag = newtag; SpriteRenderer.sprite = newsprite; SpriteRenderer.sortingLayerName = layername; gameObject.layer = LayerMask.NameToLayer(newtag); this.name = Type.ToString(); //Entity.Name + (newtype == TileBasis.TileType.OVERLAPROAD?@"(Overlap)":""); }
public void changeTileType(TileBasis.TileType newtype, DungeonParameter dgparam) { switch (newtype) { case TileBasis.TileType.ROAD: init(road,dgparam); //newtag = TagList.Road; break; case TileBasis.TileType.WALL: init(wall,dgparam); //newtag = TagList.Wall; break; case TileBasis.TileType.WATERWAY: init(waterway,dgparam); //newtag = TagList.Wall; break; case TileBasis.TileType.OVERLAPROAD: init(road, dgparam); string newtag = TagList.Road; this.transform.tag = newtag; SpriteRenderer.sortingLayerName = TagList.OverlapRoad; gameObject.layer = LayerMask.NameToLayer(newtag); //this.name += @"(Overlap)"; break; case TileBasis.TileType.UNBREAKABLEWALL: init(wall, dgparam); Type = TileBasis.TileType.UNBREAKABLEWALL; name = Type.ToString(); break; } }