public SpawnCharacter(SpawnCharacterAction config, EntitySpawner entitySpawner, Character caster, TemplateArgs args, Environment environment, SkillId skillId, HeroAndMonsterConfig hamc) { this.config = config; this.entitySpawner = entitySpawner; this.caster = caster; this.args = args; this.environment = environment; this.skillId = skillId; this.hamc = hamc; entityGroupOfCaster = caster.GameObject().GetComponent <EntityReference>().Entity.Group; FrameAndSecondsConverter fasc = FrameAndSecondsConverter._30Fps; spawnDelay = fasc.FramesToSeconds(config.delay); vfxDelay = fasc.FramesToSeconds(config.vfxDelay); defaultEntityGroupOfMinion = hamc.FindBasicStats(new CharacterId(config.groupId, config.subId)).team; if (config.spawnCount > 0) { Vector3 spawnPosition = CalculateSpawnPosition(); spawnPositions.Add(spawnPosition); if (spawnDelay <= 0) { Spawn(spawnPosition); } if (vfxDelay <= 0) { PlayVfx(spawnPosition); } } }
public int ShowMonsterCountThatAreNotEnvironmentOfCurrentStage(ConfigManager configManager) { if (activeStage == null) { return(0); } int count = 0; List <SsarTuple <CharacterId, int> > monsterIdAndSpawnCount = activeStage.ShowMonsterIdAndSpawnCount(); HeroAndMonsterConfig heroAndMonsterConfig = configManager.GetConfig <HeroAndMonsterConfig>(); for (int i = 0; i < monsterIdAndSpawnCount.Count; i++) { CharacterId characterId = monsterIdAndSpawnCount[i].Element1; HeroConfig.BasicStats basicStats = heroAndMonsterConfig.FindBasicStats(characterId); if (basicStats.ShowRole() == EntityRole.Environment) { continue; } count += monsterIdAndSpawnCount[i].Element2; } return(count); }
public void SetCookies(IEnumerable <string> cookies) { notNullReference.Check(cookies, "cookies"); monsterId = new CharacterId(cookies.ElementAt(0)); monsterCount = Convert.ToInt32(cookies.ElementAt(1)); spawnInterval = Convert.ToSingle(cookies.ElementAt(2)); spawnCount = Convert.ToInt32(cookies.ElementAt(3)); spawnX = Convert.ToSingle(cookies.ElementAt(4)); spawnY = Convert.ToSingle(cookies.ElementAt(5)); spawnZ = Convert.ToSingle(cookies.ElementAt(6)); xAxisAmplitude = Convert.ToSingle(cookies.ElementAt(7)); xAxisDensity = Convert.ToInt32(cookies.ElementAt(8)); facingDirection = (Direction)Enum.Parse(typeof(Direction), cookies.ElementAt(9)); spawnSkillLevelPool = DungeonSpawnConfig.Spawn.ParseSkillLevelPool(cookies.ElementAt(10)); monsterLevel = Convert.ToInt32(cookies.ElementAt(11)); elapsedTimeSinceLastSpawn = spawnInterval; monsterCountSoFar = monsterCount * spawnCount; monsterIdAndSpawnCount = new SsarTuple <CharacterId, int>(monsterId, monsterCountSoFar); group = hamc.FindBasicStats(monsterId).team; }