팀플 - 담당 작업 설명
조원분들과 서로 작업한 내용 공유하며 설명하는 타임 ~!
나의 작업 리스트 :
〰
배틀 스테이지에 입장하면 적 랜덤 출현
(만들어주신 BattleUtility 쪽 함수 이용해서 리스트로 출현한 적들 모아두기)
BattleUtility.cs ↓
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using W3_TeamProject.Enemies;
namespace W3_TeamProject
{
/// <summary>
/// BattleScene에 적용할 기능들을 모아놨습니다.
/// </summary>
internal class BattleUtility
{
Random random = new Random();
public List<BaseEnemy> GetEnemyList(int _level) //레벨 값을 받으면 층에 해당하는 레벨을 출력
{
List<BaseEnemy> enemyList = new List<BaseEnemy>();
for(int i=0; i <random.Next(1,5); i++)
{
SpawnEnemy(i, enemyList, _level);
}
return enemyList;
}
public void SpawnEnemy(int idx , List<BaseEnemy> enemyList, int _levelValue)
{
// 생성할 몬스터의 범위와 맞아야 함!!
int rng = random.Next(0, 5);
int level;
if (_levelValue == 1) //1층이면 1 ~ 3렙 몬스터
level = random.Next(1, 4);
else
level = random.Next(4, 7);
switch (rng)
{
case 0:
{
enemyList.Add(new Slime(level));
enemyList[idx].SetLocation(idx);
break;
}
case 1:
{
enemyList.Add(new Goblin(level));
enemyList[idx].SetLocation(idx);
break;
}
case 2:
{
enemyList.Add(new Rtan(level));
enemyList[idx].SetLocation(idx);
break;
}
case 3:
{
enemyList.Add(new Zombie(level));
enemyList[idx].SetLocation(idx);
break;
}
case 4:
{
enemyList.Add(new Coffee(level));
enemyList[idx].SetLocation(idx);
break;
}
}
}
}
}
〰
while 문으로 endPoint = 0 (= 계속 플레이 상태 (승리x 패배x)) 일 때
컨트롤러 연결해서 공격/방어/스킬/아이템 목록 커서 이동.
* break 걸어서 endPoint 가 0 이 아니면 while 문 빠져나오도록.
〰
랜덤 출현한 적이 IsDie true 할때마다 countIsDie 에 숫자를 넣어서, countIsDie 와 enemyListForStage.Count 가 동일해지면,
모든 적이 죽었다는 의미이니 이 때 endPoint 를 1 로 변경.
(아이디어 제공 감사합니다 :) )
〰
플레이어의 공격
-- isPlayerTurn 이 true 이면 플레이어의 턴 (false 면 적의 턴)
-- 공격하는 함수(NormalAttack()) 를 bool 값을 return 하도록 아이디어 제공받음. :)
-- NormalAttack() 함수에 가면
-- 랜덤 스폰된 적에 맞춰서 컨트롤러 세팅
-- damage 는 랜덤한 값으로 (from 기본+장착공격/2 to 기본+장착공격), 공격 후에는 return false. (= 적의 턴이 되도록)
-- 선택한 적이 이미 죽었다면 다른 적을 선택하도록 문구를 띄우고 return true 로 설정. (= 적의 턴으로 넘어가지 않고 플레이어의 턴이 되도록.)