void OnCharacterDeselected(CCharacter character) { if (character == thisCharacter) { characterCanvas.SetActive(false); } }
public bool addPlayer(CCharacter player) //TODO: player has to choose team, when GROUP fight { bool result = false; if (getNumParticipants() == TeamSize * 2) { return(result); } if (getNumParticipants() < TeamSize * 2 && fightState == FightState.QUEUE) //if both teams are not full, add to any { if (TeamRed.Count < TeamSize && TeamBlue.Count < TeamSize) { result = addPlayer(new Random().Next(1, 3), player); } else { if (TeamRed.Count < TeamSize) //if red not full ad to red { result = addPlayer(1, player); } else { result = addPlayer(2, player); //if red full - add to blue } } } return(result); }
void OnCharacterActionTaken(CCharacter character, ECharacterAction action) { if (teamNumber == localPlayerNumber) { if (!isTeamsTurn) { return; } Debug.Log("Character " + character.name + " did action " + action.ToString() + " and now has " + character.currentActionPoints.ToString() + " action points"); if (character.currentActionPoints > 0) { SelectCharacter(character); return; } if (AreAllCharactersOutOfActions()) { shouldEndTurnNextUpdate = true; return; } TrySelectNextAvailableCharacter(); } }
void OnCharacterDeath(CCharacter character) { if (character == characterToEliminate) { OnObjectiveCompleted(characterToEliminate.name); } }
private void AddUserInfo(CCharacter player) { UserInfo info = new UserInfo() { // Position = player.Position, // Name = player.Name, GenStats = player.GetCharData <GeneralStats>(), // // //Attributes - level, exp, stats Stats = player.Stats.GetAllStats(), // // //inventory - all equiped items // Equipment = player.Items.Equipment.ToDictionary(item => (int)item.Key, item => (ItemData)item.Value), Inventory = player.Items.Inventory.ToDictionary(item => item.Key, item => (ItemData)(Item)item.Value), // // //Talents - skills // // //effects // // //movement speed // //action/emotes }; AddSerializedParameter(info, ClientParameterCode.Object, false); }
void OnCharacterActionTaken(CCharacter character, ECharacterAction action) { AudioClip clipToPlay = null; switch (action) { case ECharacterAction.MOVE: case ECharacterAction.SPRINT: clipToPlay = moveSound; break; case ECharacterAction.ATTACK: clipToPlay = attackSound; break; case ECharacterAction.SLASH: clipToPlay = slashSound; break; default: Debug.LogWarning("This should never happen! Case for a character action not covered in switch!"); break; } PlayClip(clipToPlay); }
private void setPlayerFightWLT(CCharacter player, FightWinLossTie result) { var fightData = CharFightData[player]; fightData.WLT = result; CharFightData[player] = fightData; }
void Cleanup(CCharacter deselectedCharacter = null) { foreach (var tile in tilesInRange) { tile.RemoveAllHighlights(); } }
public int ApplyDamage(int damage, CCharacter attacker) { float finalDamage = 0; IStat health; _stats.TryGetValue(typeof(CurrHealth), out health); if (health != null) { int currentHealth = (int)health.BaseValue; //Log.DebugFormat("currHp: {0}, newHP: {1}, dmg: {2}, killdmg: {3}, overkill: {4}", currentHealth, -99, damage, -99, -99); var newHealth = currentHealth - damage; if (newHealth <= 0) //OVERKILL { health.BaseValue = 0; //Dead Character.Die(); //Log.DebugFormat("currHp: {0}, newHP: {1}, dmg: {2}, killdmg: {3}, overkill: {4}", currentHealth, newHealth, damage, -99, -99); var killDamage = damage - Math.Abs(newHealth); //Log.DebugFormat("currHp: {0}, newHP: {1}, dmg: {2}, killdmg: {3}, overkill: {4}", currentHealth, newHealth, damage, killDamage, -99); var overkill = damage - Math.Abs(currentHealth); //Log.DebugFormat("currHp: {0}, newHP: {1}, dmg: {2}, killdmg: {3}, overkill: {4}", currentHealth, newHealth, damage, killDamage, overkill); Log.DebugFormat("OVER-KILL. DMG TOTAL: {0} . ACTUAL DEALT: {1}({2})", damage, killDamage, overkill); finalDamage = killDamage; } else //NORMAL DAMAGE { health.BaseValue = newHealth; finalDamage = damage; } _dirty = true; } Character.Effects.OnDamageTaken(damage, attacker); return((int)finalDamage); }
void OnCharacterActionTaken(CCharacter character, ECharacterAction action) { if (character == thisCharacter) { UpdateUI(); } }
/// <summary> /// 玩家基本消息 /// </summary> /// <param name="buffer"></param> /// <param name="chr"></param> /// <param name="client"></param> public static void addCharStats(MapleBuffer buffer, CCharacter chr, CMapleClient client) { buffer.add <int>(chr.Id); buffer.add(chr.Name, 0x13); buffer.add <byte>(client.UserInfo.Gender); buffer.add <byte>(byte.Parse(chr.Skin.ToString())); buffer.add <int>(chr.Face); buffer.add <int>(chr.Hair); buffer.add <long>(0); buffer.add <byte>((byte)chr.Level); buffer.add <short>(chr.Job); buffer.add <short>(chr.Str); buffer.add <short>(chr.Dex); buffer.add <short>(chr.Int_); buffer.add <short>(chr.Luk); buffer.add <short>(chr.Hp); buffer.add <short>(chr.Mp); buffer.add <short>(chr.Maxhp); buffer.add <short>(chr.Maxmp); buffer.add <short>(chr.Ap); buffer.add <short>(chr.Sp); buffer.add <int>(chr.Exp); buffer.add <short>(chr.Fame); buffer.add <int>(chr.MapId); buffer.add <byte>(chr.Spawnpoint); buffer.addTime(150842304000000000L); buffer.add <long>(0); }
public SpellEnvironment(CCharacter player, byte playerSpell, CCharacter target, byte targetSpell) { Character = player; CharacterSpell = playerSpell; Target = target; TargetSpell = targetSpell; }
void OnCharacterDeselected(CCharacter character) { currentlySelectedCharacter = null; actionPanel.SetActive(false); actionDescriptionPanel.gameObject.SetActive(false); availableActions = null; ResetAllButtons(); }
void OnCharacterSelected(CCharacter character) { nameText.text = character.name; movementRangeText.text = "Movement Range: " + character.GetMovementPerAction().ToString(); attackRangeText.text = "Attack Range: " + character.GetAttackRange().ToString(); characterInfoPanel.SetActive(true); }
void OnCharacterSelected(CCharacter character) { if (character == thisCharacter) { characterCanvas.SetActive(true); UpdateUI(); } }
void FocusOnCharacter(CCharacter character) { characterInFocus = character; pointInFocus = character.transform.position; targetPosition = GetPositionForFocusPointWithAngle(characterInFocus.transform.position , anglesInClockwiseOrder[currentAngleIndex]); isMoving = true; }
public int updateTotalDamage(CCharacter obj, int value) { var info = CharFightData[obj]; info.TotalDamage += value; CharFightData[obj] = info; return(info.TotalDamage); }
public static MaplePakcet AddPlayer(CMapleClient client, CCharacter chr) { using (MapleBuffer buffer = new MapleBuffer()) { buffer.add <byte>(0); addCharEntry(buffer, chr, client); return(new MaplePakcet(buffer.ToArray())); } }
protected bool OnDecide(CCharacter target) { if (target.A == Condition) { TrueRaise?.Invoke(this.ControllerOwner); return(true); } return(false); }
public MoveToLocationPacket(CCharacter character) : base(ClientEventCode.ServerPacket, MessageSubCode.MoveToLocation) { AddParameter(character.ObjectId, ClientParameterCode.ObjectId); AddSerializedParameter(new MoveTo { CurrentPosition = (PositionData)character.Position, Destination = (PositionData)character.Destination, Moving = character.Moving }, ClientParameterCode.Object); }
public CMapleCharacter(CCharacter character) { this.character = character; inventory = new CMapleInventory[8]; foreach (InventoryType inv in System.Enum.GetValues(typeof(InventoryType))) { inventory[(int)inv] = new CMapleInventory(inv); } }
public bool hasMovesAgainstAll(CCharacter character) { var aliveEnemyIds = getAllParticipants().Where(x => getPlayerTeam(x) != getPlayerTeam(character) && !x.IsDead).Select(x => x.ObjectId).ToList(); bool result = false; foreach (var id in aliveEnemyIds) { result = Moves.Values.Any(x => x.PeerObjectId == character.ObjectId && x.TargetObjectId == id); } return(result); }
void OnCharacterSelected(CCharacter character) { currentlySelectedCharacter = character; actionPanel.SetActive(true); availableActions = new List <ECharacterAction>(character.availableActions); UpdatePanel(); if (shouldAutoSelectFirstAction) { Invoke("TryClickDefaultActionButton", 0.1f); } }
public CCharacter GetCharacterOnTile(CTile tile) { foreach (var team in allTeams) { CCharacter character = team.GetCharacterOnTile(tile); if (character != null) { return(character); } } return(null); }
public LevelUpPacket(CCharacter instance, bool sendToSelf = true) : base(ClientEventCode.ServerPacket, MessageSubCode.LevelUp, sendToSelf) { var data = new LevelUpData() { NewLevel = (byte)instance.Stats.GetStat <Level>(), NewNextLevelExperience = instance.GetCharData <GeneralStats>().NextLevelExperience, CurrentGold = instance.GetCharData <GeneralStats>().Gold, StatPoints = (byte)instance.Stats.GetStat <StatPoints>() }; AddSerializedParameter(data, ClientParameterCode.Object); }
void OnCharacterDeath(CCharacter character) { if (characters.Contains(character)) { characters.Remove(character); Debug.Log("Character " + character.name + " is dead!"); Destroy(character.gameObject); if (characters.Count == 0) { TeamEvents.teamEliminatedEvent.Invoke(this); } } }
public override void Handle(MapleBuffer mapleBuffer, CMapleClient client) { //TODO:游戏登陆(0%) int cid = mapleBuffer.read <int>(); //加载角色信息 CCharacter mapleCharacter = CMapleCharacter.LoadData(cid, client); client.SendDatat(PlayerPakcet.GetCharInfo(ChannelServices.ChannelId, mapleCharacter, client)); Console.WriteLine("角色信息:" + mapleCharacter.Name); //进行添加到地图列表中... MapleMapFactory.MapFactory.GetMap(client.CharacterInfo.character.MapId).AddPlayer(client.CharacterInfo); //CMapleMap.AddPlayer(mapleCharacter.MapId, client.CharacterInfo); }
void SelectCharacter(CCharacter character) { if (!isTeamsTurn) { return; } if (currentlySelectedCharacter) { currentlySelectedCharacter.OnDeselected(); } currentlySelectedCharacter = character; currentlySelectedCharacter.OnSelected(); }
void OnCharacterClickedOn(CCharacter character) { if (teamNumber == localPlayerNumber) { if (!isTeamsTurn) { return; } if (character.currentActionPoints > 0 && currentlySelectedCharacter != character) { SelectCharacter(character); } } }
XElement GetCharacterStateAsXML(CCharacter character) { XElement xCharacter = new XElement(XMLFields.Character, new XElement(XMLFields.CharacterName, character.name), new XElement(XMLFields.ActionPoints, character.currentActionPoints), new XElement(XMLFields.HitPoints, character.GetHitPoints())); Vector3 characterPosition = character.transform.position; XElement xPosition = new XElement(XMLFields.Position, new XElement(XMLFields.PositionX, characterPosition.x), new XElement(XMLFields.PositionY, characterPosition.y), new XElement(XMLFields.PositionZ, characterPosition.z)); xCharacter.Add(xPosition); return(xCharacter); }