protected virtual void InitialStatus(int level) { switch (level) { case 1: maxHeart = heart = Random.Range(6, 8); sword = Random.Range(2, 4); shield = Random.Range(0, 1); break; case 2: maxHeart = heart = Random.Range(8, 12); sword = Random.Range(4, 6); shield = Random.Range(0, 2); break; case 3: maxHeart = heart = Random.Range(10, 15); sword = Random.Range(7, 10); shield = Random.Range(1, 3); break; case 4: default: maxHeart = heart = Random.Range(15, 20); sword = Random.Range(8, 12); shield = Random.Range(2, 4); break; } characterType = (CHARACTER_TYPE)Random.Range(0, 3); alive = true; }
public void setCharacter(CHARACTER_TYPE character) { Sprite sprite = warriorSprite; Color color = Color.yellow; switch (character) { case CHARACTER_TYPE.WARRIOR: color = Color.yellow; sprite = warriorSprite; break; case CHARACTER_TYPE.THIEF: color = Color.green; sprite = thiefSprite; break; case CHARACTER_TYPE.MAGE: color = Color.blue; sprite = mageSprite; break; } spriteObj.GetComponent <SpriteRenderer>().sprite = sprite; var main = particleObj.GetComponent <ParticleSystem>().main; main.startColor = color; }
public override void init() { base.init(); mCharacterType = CHARACTER_TYPE.CT_MAX; mName = null; mGUID = CommonDefine.INVALID_ID; }
public Dictionary <CHARACTER_TYPE, DefaultCharacterInfo> loadDefaultCharacterInfo() // SCV파일로된 캐릭터 타입별 디폴트 스텟정보를 로드해 반환 { Debug.Log("캐릭터 디폴트 정보 불러오기"); if (m_bloadDefulatCharacterInfoState == false) { Debug.Log("CSV 파일에서 캐릭터 디폴트 정보 불러오기"); TextAsset text = Resources.Load <TextAsset>("Data/DefaultCharacterInfo"); // 리소스 로드를 통해 테이블을 로드한다. string content = text.text; // content안에는 1줄로 데이터가 쭉 나열되어 있다. string[] line = content.Split('\n'); // string을 '\n' 기준으로 분리해서 line배열에 넣는다. for (int i = 2; i < line.Length - 1; i++) // 0 ~ 1번 라인은 테이블 타입 구분 용도로 사용한다. 2번째 라인부터 라인 갯수만큼 테이블 생성 (마지막NULL 한칸 제외해서 -1라인) { string[] column = line[i].Split(','); // 열의 정보값을 ','로 구분해 column배열에 넣는다. SCV파일은 ,로 구분되어 있으므로 DefaultCharacterInfo table = new DefaultCharacterInfo(); // SCV순서와 구조체 데이터 형식이 일치하여야 함 CHARACTER_TYPE key = CHARACTER_TYPE.NONE; // key값이 될 캐릭터 종류 int index = 0; // 0번째 열부터 시작 key = (CHARACTER_TYPE)int.Parse(column[index++]); // 첫번째 값을 정수형으로 받은 후 enum으로 전환해 key에 대입 table.m_iMaxExp = int.Parse(column[index++]); table.m_iMaxExpUp = int.Parse(column[index++]); table.m_iMaxHp = int.Parse(column[index++]); table.m_iMaxHpUp = int.Parse(column[index++]); table.m_iStr = int.Parse(column[index++]); table.m_iStrUp = int.Parse(column[index++]); table.m_iDef = int.Parse(column[index++]); table.m_iDefUp = int.Parse(column[index++]); m_dicDefaultCharacterInfo.Add(key, table); } m_bloadDefulatCharacterInfoState = true; } Debug.Log("캐릭터 디폴트 정보 불러오기 완료"); return(m_dicDefaultCharacterInfo); }
public override void init() { base.init(); mCharacterType = CHARACTER_TYPE.CT_MAX; mName = ""; mID = -1; }
static public CharacterFactory createFactory(Type classType, CHARACTER_TYPE type) { object[] param = new object[] { type, classType }; //构造器参数 CharacterFactory factory = Activator.CreateInstance(typeof(CharacterFactory), param) as CharacterFactory; return(factory); }
private List <CharPartyData> m_ListEnemyParty = new List <CharPartyData>(); //에너미 파티용 데이터 public void Init(int iMapIndex, int iBlockIndex, CHARACTER_TYPE eType) { m_iMapIndex = iMapIndex; //에너미 인덱스 숫자 m_iBlockIndex = iBlockIndex; m_eType = eType; //파티 데이터만 셋팅 try { string Route = "Excel/MapData/" + m_iMapIndex + "/" + m_iBlockIndex + "_" + eType.ToString(); var EnemyTable = EXCEL.ExcelLoad.Read(Route); for (int i = 0; i < EnemyTable.Count; i++) { Route = "Excel/EnemyClass/" + EnemyTable[i][CHARACTER_DATA.CHAR_CLASS_TYPE.ToString()]; var EnemyClass = EXCEL.ExcelLoad.Read(Route); PartyDataSetting(i, EnemyTable, EnemyClass); } //에너미 데이터 셋팅 Debug.Log("Enemy Data Setting"); } catch { Debug.Log("Enemy Data Setting Error"); } }
public void Icon1() { m_eCharacterType = CHARACTER_TYPE.UNITY; m_selectIllustTexture.mainTexture = Resources.Load("Texture/UnityChan0", typeof(Texture2D)) as Texture2D; m_selectCharacterNameLabel.text = "UNITY-CHAN"; m_selectIntroduceLabel.text = "클래스 : 격투가\n착용무기 : 너클\n\n빠른 스피드와 접근전에서 강력한 데미지를 주는 근거리 타격 캐릭터이다."; }
public void icon2() { m_eCharacterType = CHARACTER_TYPE.AKAZA; m_selectIllustTexture.mainTexture = Resources.Load("Texture/Akaza0", typeof(Texture2D)) as Texture2D; m_selectCharacterNameLabel.text = "AKAZA"; m_selectIntroduceLabel.text = "클래스 : 마검사\n착용무기 : 장검\n\n장검과 흑마법을 연계한 이용한 넓은 범위의 공격범위를 가지는 캐릭터이다."; }
public Character createCharacter(string name, CHARACTER_TYPE type, int clientID, int guid) { if (mCharacterList.ContainsKey(name)) { Debug.LogError("error : there is a character named : " + name + "! can not create again!"); return(null); } if (type == CHARACTER_TYPE.CT_MYSELF) { if (mMyself != null) { Debug.LogError("error : Myself has exist ! can not create again ,name " + name); return(null); } } CharacterFactory factory = mCharacterFactoryManager.getFactory(type); Character newCharacter = factory.createCharacter(name); // 如果是玩家自己,则记录下来 if (type == CHARACTER_TYPE.CT_MYSELF) { mMyself = newCharacter as CharacterMyself; } // 将创建的角色挂接到角色管理器下 newCharacter.setParent(mManagerObject); newCharacter.init(clientID, guid); addCharacterToList(newCharacter); return(newCharacter); }
public Dictionary <string, DefaultSkillInfo> loadDefaultSkillInfo(CHARACTER_TYPE characterType) { if (m_bloadDefulatSkillInfoState == false) // 스킬정보 로드 이력이 없으면 CSV파일에서 불러온다. { Debug.Log("CSV 디폴트 스킬 정보 불러오기"); TextAsset textAsset = new TextAsset(); if (characterType == CHARACTER_TYPE.AKAZA) { textAsset = Resources.Load <TextAsset>("Data/AkazaSkillInfo"); // 리소스 로드를 통해 테이블을 로드한다. } //if (characterType == CHARACTER_TYPE.UNITY) // textAsset = Resources.Load<TextAsset>("Data/UnityChanSkillInfo"); // 리소스 로드를 통해 테이블을 로드한다. string content = textAsset.text; // 한라인으로 데이터가 나열되어 있다. string[] line = content.Split('\n'); // string을 '\n' 기준으로 분리해서 line배열에 넣는다. for (int i = 2; i < line.Length - 1; i++) // 0 ~ 1번 라인은 테이블 타입 구분 용도로 사용한다. 2번째 라인부터 라인 갯수만큼 테이블 생성 (마지막NULL 한칸 제외해서 -1라인) { string[] column = line[i].Split(','); // 열의 정보값을 ','로 구분해 column배열에 넣는다. SCV파일은 ,로 구분되어 있으므로 DefaultSkillInfo table = new DefaultSkillInfo(); // SCV순서와 구조체 데이터 형식이 일치하여야 함 string key = null; // key값이 될 문자열의 닉네임 보관장소 int index = 0; // 0번째 열부터 시작 key = column[index++].Replace("\r", ""); // 키값(스킬명) 저장 table.m_strImageName = column[index++].Replace("\r", ""); // 스킬 아이콘 이미지 table.m_fCoolTime = float.Parse(column[index++]); // 쿨타임 table.m_fDamageRatio = float.Parse(column[index++]); // 데미지 배율 table.m_fHoldTime = float.Parse(column[index++]); // 공격판정 유지시간 table.m_iGetLevel = int.Parse(column[index++]); // 습득 레벨 m_dicDefaultSkillInfo.Add(key, table); } m_bloadDefulatSkillInfoState = true; // 상점 정보를 로드한 상태로 변경 } return(m_dicDefaultSkillInfo); // 상점 아이템 정보 반환 }
public Character createCharacter(string name, CHARACTER_TYPE type, int id) { if (mCharacterList.ContainsKey(name)) { UnityUtility.logError("error : there is a character named : " + name + "! can not create again!"); return(null); } if (type == CHARACTER_TYPE.CT_MYSELF) { if (mMyself != null) { Debug.LogError("error : Myself has exist ! can not create again ,name " + name); return(null); } } CharacterFactory factory = mCharacterFactoryManager.getFactory(type); Character newCharacter = factory.createCharacter(name); // 如果是玩家自己,则记录下来 if (type == CHARACTER_TYPE.CT_MYSELF) { mMyself = newCharacter as CharacterMyself; } if (newCharacter != null) { // 将角色挂接到管理器下 newCharacter.getObject().transform.parent = mManagerObject.transform; newCharacter.init(id); addCharacterToList(newCharacter); } return(newCharacter); }
// Start is called before the first frame update void Start() { m_dicCreateInfo = DataManager.instance.loadCreateInfo(); // 데이터매니저에서 캐릭터 생성 정보를 받음 foreach (KeyValuePair <int, CreateInfo> iterator in m_dicCreateInfo) // 반복자를 순회하면서 { int slotIndex = iterator.Key; string userName = iterator.Value.m_strUserName; // 반복자 내의 정보를 임시변수에 대입 CHARACTER_TYPE characterType = iterator.Value.m_eCharacterType; // 캐릭터 타입 string characterName = null; // 캐릭터 이름 if (characterType == CHARACTER_TYPE.UNITY) { characterName = "< UNITY-CHAN >"; // 캐릭터명 GameObject character = (GameObject)Instantiate(Resources.Load("Prefabs/UnityChanNormal"), new Vector3(-1.2f + 0.85f * slotIndex, -0.4f, -0.2f), Quaternion.AngleAxis(180.0f, new Vector3(0, 1, 0))); // 180도 회전 생성 character.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); // 스케일 0.6으로 변경 } else if (characterType == CHARACTER_TYPE.AKAZA) { characterName = "< AKAZA >"; // 캐릭터명 GameObject character = (GameObject)Instantiate(Resources.Load("Prefabs/AkazaNormal"), new Vector3(-1.2f + 0.85f * slotIndex, -0.4f, -0.2f), Quaternion.AngleAxis(180.0f, new Vector3(0, 1, 0))); // 180도 회전 생성 character.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); // 스케일 0.6으로 변경 } m_characterLabel[slotIndex].text = characterName + "\n닉네임 : " + userName; } }
public CharacterFactory addFactory <T>(CHARACTER_TYPE type) where T : Character { CharacterFactory factory = CharacterFactory.createFactory(typeof(T), type); mFactoryList.Add(factory.getType(), factory); return(factory); }
public CharacterOther(CHARACTER_TYPE type, string name) : base(type, name) { mMatchSpeed = false; mCurSpeedLevel = -1; }
public Character(CHARACTER_TYPE type, string name) : base(name) { mCharacterType = type; mCharacterData = new CharacterData(); }
public RankingInfo(string userName, int characterType, int score, float clearTime) // 매게변수 생성자 { m_strUserName = userName; m_eCharacterType = (CHARACTER_TYPE)characterType; m_iScore = score; m_fClearTime = clearTime; }
void HeroControllerListChanged(CHARACTER_TYPE characterType, List <AbsCharacterController> controller) { if (this.characterType != characterType) { return; } // if slotID is 2, but list count is 2, there are only slotID 0,1 ,cause the list is sorted By SlotID if (controller.Count < this.slotID + 1) { battleBottomManager.Close(); return; } this.characterController = controller [this.slotID]; var _heroController = (HeroController)characterController; List <CommonSkillFormat> _skillData = new List <CommonSkillFormat> (); foreach (var skill in _heroController.HeroDataCache.SkillList) { _skillData.Add(skill); } CharacterSkill.Init(_skillData); CharacterAttribute.Init(this.characterController); CharacterAttribute.DataDisplay(); }
public void EnemyListClear() { //초기화 m_ListEnemyParty.Clear(); m_iMapIndex = -1; //에너미 인덱스 숫자 m_iBlockIndex = -1; m_eType = CHARACTER_TYPE.CHAR_NONE; }
protected CharacterData mCharacterData; //玩家数据 public Character(CHARACTER_TYPE type, string name) : base(name) { mCharacterType = type; mCharacterData = null; // 需要将角色挂接到角色管理器下 }
public void getCharacterListByType(CHARACTER_TYPE type, ref Dictionary <string, Character> characterList) { if (!mCharacterTypeList.ContainsKey(type)) { return; } characterList = mCharacterTypeList[type]; }
public CharacterFactory getFactory(CHARACTER_TYPE type) { if (mFactoryList.ContainsKey(type)) { return(mFactoryList[type]); } return(null); }
protected override void HitObj(CHARACTER_TYPE hitType, bool isBullet) { switch (hitType) { case CHARACTER_TYPE.PLAYER: Die(true); break; } }
public int m_iGold; // 골드 public void setDynamicCharacterInfo(string userName, int characterType, int level, int exp, int jam, int gold) // 매게변수 세팅 { m_strUserName = userName; m_eCharacterType = (CHARACTER_TYPE)characterType; m_iLevel = level; m_iExp = exp; m_iJam = jam; m_iGold = gold; }
public void addCreateInfo(CHARACTER_TYPE characterType, string userName) // 생성 정보에 새로 생성한 캐릭터정보를 더한다. { CreateInfo createinfo = new CreateInfo(); createinfo.m_eCharacterType = characterType; createinfo.m_strUserName = userName; m_dicCreateInfo.Add(GameManager.instance.m_iCreateCharacterIndex, createinfo); saveCreateInfo(); }
public void InitFight(HeroDataFormat hero) { this.Clear(); var _attribute = (hero.Attributes as HeroAttributeFormat).CloneEx(); this.SlotID = _attribute.SlotID; this.Type = CHARACTER_TYPE.HERO; this.attributeOriginCache = _attribute; }
public override void init() { base.init(); mCharacterType = CHARACTER_TYPE.CT_MAX; mName = ""; mID = -1; mModelPath = ""; mAnimatorControllerPath = ""; mCharacterNode = ""; }
protected List <SceneMissile> mMissileLockList; // 锁定玩家的导弹列表 public CharacterOther(CHARACTER_TYPE type, string name) : base(type, name) { mPlayerPack = new PlayerPack(); mRibbonTrailStatic = new RibbonTrailStatic(); mRibbonTrailDynamic = new RibbonTrailDynamic(); mStateMachine = new StateMachine(); mEnableStatus = new EnableStatus(); mSelectAnimation = new List <string>(); mMissileLockList = new List <SceneMissile>(); }
public void ShowPartyStatus(int iIdnex, CHARACTER_TYPE eType, bool bBattle) { //파티 원 CharPartyData Node = null; if (bBattle) { if (eType == CHARACTER_TYPE.CHAR_PLAYER) { Node = GameManager.instance.PlayerParty[iIdnex]; } else if (eType != CHARACTER_TYPE.CHAR_NONE) { Node = GameManager.instance.EnemyParty[iIdnex]; } } else { Node = UserInfo.instance.PartyList[iIdnex]; } CLASS eClass = (CLASS)Util.EnumChange <CLASS>(Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_CLASS_TYPE))); if (eClass == CLASS.CLASS_WARRIOR) { m_CharClass.text = "워리어"; } else if (eClass == CLASS.CLASS_THIEF) { m_CharClass.text = "도적"; } else if (eClass == CLASS.CLASS_ARCHER) { m_CharClass.text = "궁수"; } else if (eClass == CLASS.CLASS_WIZARD) { m_CharClass.text = "마법사"; } //스테이터스 string Max = Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_MAX_HP)); m_HpLabel.text = Max; m_ATKLabel.text = Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_ATK)); string[] Split = Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_SPEED)).Split(';'); m_SteminaLabel.text = Split[0] + " 턴당 " + Split[1] + "스테미너"; m_LevelLabel.text = "Lv." + Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_LEVEL)); m_iIndex = iIdnex; m_NameLable.text = Util.ConvertToString(Node.CharData.ReturnData(CHARACTER_DATA.CHAR_NAME)); }
public void createLobbyCharacter(CHARACTER_TYPE characterType) { if (characterType == CHARACTER_TYPE.UNITY) { GameObject character = (GameObject)Instantiate(Resources.Load("Prefabs/UnityChanNormal"), new Vector3(-2f, -0.5f, -6.0f), Quaternion.AngleAxis(120.0f, new Vector3(0, 1, 0))); // 120도 회전 생성 //character.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); // 스케일 0.6으로 변경 } else if (characterType == CHARACTER_TYPE.AKAZA) { GameObject character = (GameObject)Instantiate(Resources.Load("Prefabs/AkazaNormal"), new Vector3(-2f, -0.5f, -6.0f), Quaternion.AngleAxis(120.0f, new Vector3(0, 1, 0))); // 120도 회전 생성 //character.transform.localScale = new Vector3(0.6f, 0.6f, 0.6f); // 스케일 0.6으로 변경 } }