void GenerateShards(int stageIndex) { List <Transform> posList = stageList[stageIndex].ShardPosList(); foreach (Transform targetPos in posList) { GameObject shard = Instantiate(shard1_GO, generatedShardRoot); MemoryShard ms = shard.GetComponent <MemoryShard>(); if (ms != null) { GameStatics.SHARD_TYPE shardType = GameStatics.SHARD_TYPE.EFFECT; //if (stageIndex == 0) shardType = GameStatics.SHARD_TYPE.SHARD1; //else if (stageIndex == 1) shardType = GameStatics.SHARD_TYPE.SHARD2; shardType = GameStatics.SHARD_TYPE.SHARD1; ms.SetShard( shardType, targetPos.position, PlayerManager.Instance().GetPlayerControl().GetPlayerRigidBody().transform); ms.onGetShard = PlayerManager.Instance().OnGetShard; } } }
public void Generate_SkillUpgradeEffectShards(GameStatics.SKILL_TYPE skillType, int amount) { Vector3 playerPos = PlayerManager.Instance().GetPlayerControl().GetPlayerRigidBody().position; for (int i = 0; i < amount; i++) { Vector3 randomGenPos = new Vector3(); randomGenPos.y = Random.Range(playerPos.y + 30.0f, playerPos.y + 120.0f); randomGenPos.x = Random.Range(playerPos.x - 70.0f, playerPos.x + 70.0f); GameObject shard = Instantiate(shard1_GO); MemoryShard ms = shard.GetComponent <MemoryShard>(); if (ms != null) { ms.SetShard( GameStatics.SHARD_TYPE.EFFECT, randomGenPos, PlayerManager.Instance().GetPlayerControl().GetPlayerRigidBody().transform, true); ms.SetSkillShardColor(skillType); ms.onGetShard = PlayerManager.Instance().OnGetShard; } } }
public void OnGetShard(MemoryShard shard) { if (shard.GetShardType() == SHARD_TYPE.SHARD1 || shard.GetShardType() == SHARD_TYPE.SHARD2) { int resultShardAmount = (int)(StageLoader.Instance().GetRandomShard(shard.GetShardType()) * StageLoader.Instance().GetShardMultifly()); PlayerStatus.CurrentMemoryShards += resultShardAmount; playerController.ShowShardGetText(resultShardAmount); } TopMostControl.Instance().StartGlobalLightEffect(shard.GetShardTargetColor(), 0.5f, 0.1f); GetPlayerControl().BlinkPlayerShardLight(shard.GetShardTargetColor()); SoundManager.PlayOneShotSound(SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_gainShard], SoundContainer.Instance().SoundEffectsDic[GameStatics.sound_gainShard].clip); }