void Move() { // Player 위치 확인해서 Player 한테 다가감 => target animation.Play("run"); /* * RaycastHit hit; * if(Physics.Raycast(transform.position, transform.forward, out hit, 10)) */ // 일정거리 안에 들어오면 공격 상태로 변경 // attackRange 안에 있으면 // state 를 ATTACK 으로 변경 // 그렇지 않으면 이동 // 1. 거리 계산 //float distance = Vector3.Distance(target.position, transform.position); RaycastHit hit; agent.destination = target.position; if (Physics.Raycast(transform.position, transform.forward, out hit, 15)) { Debug.Log("Enemy search!"); state = ENEMY.ATTACK; } }
public static void SetMonsterData(SB2_MON_PARM pParm, BTL_DATA pBtl, Int16 pNo) { pBtl.stat.invalid = pParm.Status[0]; pBtl.stat.permanent = pParm.Status[1]; pBtl.stat.cur = pParm.Status[2]; pBtl.cur.hp = pParm.MaxHP; pBtl.cur.mp = (Int16)pParm.MaxMP; pBtl.defence.PhisicalDefence = pParm.P_DP; pBtl.defence.PhisicalEvade = pParm.P_AV; pBtl.defence.MagicalDefence = pParm.M_DP; pBtl.defence.MagicalEvade = pParm.M_AV; pBtl.elem.dex = pParm.Element.dex; pBtl.elem.str = pParm.Element.str; pBtl.elem.mgc = pParm.Element.mgc; pBtl.elem.wpr = pParm.Element.wpr; pBtl.def_attr.invalid = pParm.Attr[0]; pBtl.def_attr.absorb = pParm.Attr[1]; pBtl.def_attr.half = pParm.Attr[2]; pBtl.def_attr.weak = pParm.Attr[3]; pBtl.mesh_current = pParm.Mesh[0]; pBtl.mesh_banish = pParm.Mesh[1]; pBtl.tar_bone = pParm.Bone[3]; ENEMY enemy = FF9StateSystem.Battle.FF9Battle.enemy[(Int32)pBtl.bi.slot_no]; for (Int32 i = 0; i < (Int32)pParm.StealItems.Length; i++) { enemy.steal_item[i] = pParm.StealItems[i]; } enemy.info.die_atk = (Byte)(((pParm.Flags & 1) == 0) ? 0 : 1); enemy.info.die_dmg = (Byte)(((pParm.Flags & 2) == 0) ? 0 : 1); btl_util.SetShadow(pBtl, pParm.ShadowX, (UInt32)pParm.ShadowZ); pBtl.shadow_bone[0] = pParm.ShadowBone; pBtl.shadow_bone[1] = pParm.ShadowBone2; }
void Attack() { Debug.Log("attack"); //animation["attack1"].speed = 1.5f; // 공격 animation.Play("attack1"); // stateTime 에 Time.deltaTime 누적 시켜서 // attackStateMaxTime 보다 커지면 // 공격 animation 플레이 // 끝나면 idle animation 플레이 // 2초간 대기 stateTime += Time.deltaTime; if (stateTime > attackStateMaxTime) { stateTime = 0.0f; // 초기화 animation.Play("attack1"); //anim.CrossFade ("walk"); animation.PlayQueued("idle", QueueMode.CompleteOthers); //CastleState.DamageByEnemy (); } //distance 구해서 attackRange 보다 커지면 //state를 MOVE float distance = (target.position - transform.position).magnitude; if (distance > attackRange) { state = ENEMY.MOVE; } }
private void OnCollisionEnter2D(Collision2D Other) { Drone drone = Other.gameObject.GetComponent <Drone>(); if (Other.gameObject.tag == "DRONEENEMY") { Debug.Log(attacking); if (attacking == true) { drone.JumpedOn(); } else { Destroy(Other.gameObject); state = State.hurt; FindObjectOfType <GameManager>().EndGame(); } } ENEMY Enemy = Other.gameObject.GetComponent <ENEMY>(); if (Other.gameObject.tag == "ENEMY") { Debug.Log(attacking); if (attacking == true) { Enemy.JumpedOn(); } else { Destroy(Other.gameObject); state = State.hurt; } } }
//Update => switch~case void Idle() { // 2초간 대기 stateTime += Time.deltaTime; if (stateTime > idleStateMaxTime) { stateTime = 0.0f; state = ENEMY.MOVE; // move 로 상태 변경 } }
void Damage() { animation.Play("block_hit"); animation.PlayQueued("idle", QueueMode.CompleteOthers); stateTime = 0.0f; state = ENEMY.IDLE; //bool isDead = false; //if(isDead == true) // if(isDead) if (healthPoint <= 0) { state = ENEMY.DEAD; } }
public Enemy(string name, ENEMY e, int x, int y) : base(name) { this.x = x; this.y = y; globalX = getGlobalX(); globalY = getGlobalY(); type = e; switch (type) { case ENEMY.ENEMY1: current = enemy1; damage = 1; break; } }
public static void PutMonster(SB2_PUT pPut, BTL_DATA pBtl, BTL_SCENE pScene, Int16 pNo) { Int16[] array = new Int16[3]; array[1] = 180; Int16[] array2 = array; ENEMY enemy = FF9StateSystem.Battle.FF9Battle.enemy[(Int32)pBtl.bi.slot_no]; enemy.et = FF9StateSystem.Battle.FF9Battle.enemy_type[(Int32)pPut.TypeNo]; pBtl.bi.target = (Byte)(((pPut.Flags & 1) == 0) ? 0 : 1); pBtl.bi.row = 2; pBtl.max = FF9StateSystem.Battle.FF9Battle.enemy_type[(Int32)pPut.TypeNo].max; pBtl.cur.hp = pBtl.max.hp; pBtl.cur.mp = pBtl.max.mp; enemy.info.multiple = (Byte)(((pPut.Flags & 2) == 0) ? 0 : 1); if (enemy.info.slave == 0) { Int32 index = 0; Single num = (Single)pPut.Xpos; pBtl.evt.posBattle[0] = num; pBtl.original_pos[0] = num; pBtl.base_pos[0] = num; pBtl.pos[index] = num; Int32 index2 = 1; num = (Single)(pPut.Ypos * -1); pBtl.evt.posBattle[1] = num; pBtl.original_pos[1] = num; pBtl.base_pos[1] = num; pBtl.pos[index2] = num; Int32 index3 = 2; num = (Single)pPut.Zpos; pBtl.evt.posBattle[2] = num; pBtl.original_pos[2] = num; pBtl.base_pos[2] = num; pBtl.pos[index3] = num; pBtl.rot = (pBtl.evt.rotBattle = Quaternion.Euler(new Vector3(0f, (Single)(pPut.Rot + array2[(Int32)pScene.Info.StartType] & 4095), 180f))); } else { pBtl.rot = (pBtl.evt.rotBattle = Quaternion.Euler(new Vector3(0f, 0f, 180f))); } pBtl.gameObject.transform.localPosition = pBtl.pos; pBtl.gameObject.transform.localRotation = pBtl.rot; pBtl.mot = enemy.et.mot; }
protected void OnActivate() { isActive = true; SelectedEnemy = (ENEMY)(Random.Range(0, NumEnemies)); TextEnemy.text = SelectedEnemy.ToString(); Debug.LogFormat("[Adventure Game #{0}] Enemy: {1}", moduleId, SelectedEnemy); StatValues = new int[7]; for (int i = 0; i < NumStats; i++) { StatValues[i] = Random.Range(StatRanges[i * 2], StatRanges[i * 2 + 1] + 1); } Debug.LogFormat("[Adventure Game #{0}] Player stats: {1}", moduleId, logPlayerStats()); Debug.LogFormat("[Adventure Game #{0}] Environment stats: {1}", moduleId, logEnvStats()); serialNum = BombInfo.GetSerialNumber(); bool foundDigit = false; foreach (char c in serialNum) { if (c >= '0' && c <= '9') { if (!foundDigit) { foundDigit = true; firstDigit = c - '0'; } lastDigit = c - '0'; } } numUnlit = BombInfo.GetOffIndicators().Count(); numLit = BombInfo.GetOnIndicators().Count(); doublePort = false; HashSet <string> portList = new HashSet <string>(); foreach (string s in KMBombInfoExtensions.GetPorts(BombInfo)) { if (portList.Contains(s)) { doublePort = true; break; } portList.Add(s); } batteryCount = KMBombInfoExtensions.GetBatteryCount(BombInfo); // Generate weapons InvValues = new List <ITEM>(); CorrectWeapon = new bool[InvWeaponCount]; for (int i = 0; i < InvWeaponCount; i++) { ITEM item; do { item = (ITEM)(Random.Range(0, NumWeapons)); } while (InvValues.Contains(item)); InvValues.Add(item); } RegenerateWeaponScores(); // Generate other items for (int i = 0; i < InvMiscCount; i++) { ITEM item; do { item = (ITEM)(Random.Range(NumWeapons, NumItems)); }while (InvValues.Contains(item)); InvValues.Add(item); } logItemUsage(); UpdateStatDisplay(); UpdateInvDisplay(); }
// Start is called before the first frame update void Start() { enemyT = ENEMY.BASIC; finalT = 0f; }
public static void InitEnemyData(FF9StateBattleSystem btlsys) { BTL_DATA btl_DATA = (BTL_DATA)null; ObjList objList = new ObjList(); if (!FF9StateSystem.Battle.isDebug) { objList = PersistenSingleton <EventEngine> .Instance.GetActiveObjList().next; } Int32 monCount = (Int32)FF9StateSystem.Battle.FF9Battle.btl_scene.PatAddr[(Int32)FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum].MonCount; Int32 i = 0; Int32 j = 4; while (i < monCount) { ENEMY enemy = btlsys.enemy[i]; BTL_DATA btl_DATA2 = btlsys.btl_data[j]; enemy.info.die_fade_rate = 32; if ((btl_DATA2.dms_geo_id = BTL_SCENE.GetMonGeoID(i)) < 0) { enemy.info.slave = 1; } else { btl_init.SetBattleModel(btl_DATA2); enemy.info.slave = 0; if (!FF9StateSystem.Battle.isDebug) { objList = objList.next; } } btl_DATA2.btl_id = (UInt16)(16 << i); btl_DATA2.bi.player = 0; btl_DATA2.bi.slot_no = (Byte)i; btl_DATA2.bi.line_no = (Byte)(4 + i); btl_DATA2.bi.t_gauge = 0; btl_DATA2.bi.slave = enemy.info.slave; BTL_SCENE btl_scene = FF9StateSystem.Battle.FF9Battle.btl_scene; SB2_PATTERN sb2_PATTERN = btl_scene.PatAddr[(Int32)FF9StateSystem.Battle.FF9Battle.btl_scene.PatNum]; SB2_MON_PARM sb2_MON_PARM = btl_scene.MonAddr[(Int32)sb2_PATTERN.Put[i].TypeNo]; UInt16 geoID = sb2_MON_PARM.Geo; btl_DATA2.height = 0; btl_DATA2.radius = 0; FF9Char ff9char = new FF9Char(); btl_init.InitBattleData(btl_DATA2, ff9char); btl_DATA2.bi.def_idle = 0; btl_DATA2.base_pos = enemy.base_pos; String path = (btl_DATA2.dms_geo_id == -1) ? String.Empty : FF9BattleDB.GEO.GetValue((Int32)btl_DATA2.dms_geo_id); if (!ModelFactory.IsUseAsEnemyCharacter(path)) { btl_DATA2.weapon_geo = (GameObject)null; } btl_DATA2.sa = btl_init.enemy_dummy_sa; FF9BattleDBHeightAndRadius.TryFindHeightAndRadius(geoID, ref btl_DATA2.height, ref btl_DATA2.radius); if (btl_DATA != null) { btl_DATA.next = btl_DATA2; } btl_DATA = btl_DATA2; i++; j++; } while (j < 8) { btlsys.btl_data[j].btl_id = 0; j++; } btl_DATA.next = (BTL_DATA)null; btlsys.btl_list.next = btlsys.btl_data[4]; btlsys.btl_load_status = (Byte)(btlsys.btl_load_status | 8); btl_init.SetupBattleEnemy(); btlseq.InitSequencer(); }
public static BattleEnemy Find(BattleUnit unit) { ENEMY data = btl_util.getEnemyPtr(unit.Data); return(new BattleEnemy(data)); }
public static void DamageByPlayer() { healthPoint -= 1; Debug.Log("***"); state = ENEMY.DAMAGE; }
void InitEnemy() { healthPoint = 5; state = ENEMY.IDLE; animation.Play("idle"); }
public static void cnvEnemyCsvData2EnemyData(EnemyData enemy_data, EnemyCsvData enemy_csvdata, EnemyLevelupCsvData enemy_lvup_csvdata, ENEMY enemy_party_csvdata_enemy); // Offset: 0xFE623C
public static ENEMY GetEnemyInfo(int id) { ENEMY e = null; switch (id) { case ENEMY_CIRNO: e = CIRNO; break; case ENEMY_RUMIA: e = RUMIA; break; case ENEMY_CHEN: e = CHEN; break; case ENEMY_MAOYU: e = MAOYU; break; case ENEMY_SAKUYA: e = SAKUYA; break; case ENEMY_MEILIN: e = MEILIN; break; case ENEMY_REMILIA: e = REMILIA; break; case ENEMY_FLANDRE: e = FLANDRE; break; case ENEMY_ALICE: e = ALICE; break; case ENEMY_SHANGHAI: e = SHANGHAI; break; case ENEMY_KAGUYA: e = KAGUYA; break; case ENEMY_RIN: e = RIN; break; case ENEMY_PATCHOULI: e = PATCHOULI; break; case ENEMY_SANAE: e = SANAE; break; case ENEMY_AYA: e = AYA; break; case ENEMY_YUUGI: e = YUUGI; break; case ENEMY_YUUKA: e = YUUKA; break; case ENEMY_SUIKA: e = SUIKA; break; case ENEMY_SUIKA_SMALL: e = SUIKA_SMALL; break; case ENEMY_YUYUKO: e = YUYUKO; break; case ENEMY_YOUMU: e = YOUMU; break; case ENEMY_YUKARI: e = YUKARI; break; case ENEMY_SHIKIEKI: e = SHIKIEKI; break; case ENEMY_EIRIN: e = EIRIN; break; case ENEMY_KANAKO: e = KANAKO; break; case ENEMY_SUWAKO: e = SUWAKO; break; /*case ENEMY_CIRNO: * e = CIRNO; * break; * case ENEMY_CIRNO: * e = CIRNO; * break;*/ } return(e); }
internal BattleEnemy(ENEMY data) { _data = data; }