Merge branch 'master' of http://mobile.secondworld.net.cn:10010/r/Project_SG_scripts
New file |
| | |
| | | //-------------------------------------------------------- |
| | | // [Author]: 第二世界 |
| | | // [ Date ]: Monday, September 11, 2017 |
| | | //-------------------------------------------------------- |
| | | using UnityEngine; |
| | | using System.Collections; |
| | | using UnityEngine.UI; |
| | | |
| | | using System.Text; |
| | | |
| | | public class BossLifeBar : MonoBehaviour |
| | | { |
| | | [SerializeField] Sprite[] m_LifeBarSprites; |
| | | |
| | | [SerializeField] Image m_BackGround; |
| | | [SerializeField] Image m_MiddleGround; |
| | | [SerializeField] Image m_PrefaceGround; |
| | | |
| | | [SerializeField] Slider m_SliderMiddleground; |
| | | [SerializeField] Slider m_SliderForeground; |
| | | |
| | | [SerializeField] Text m_Surplus; |
| | | |
| | | [SerializeField] Text m_SurplusPercent; |
| | | |
| | | |
| | | [SerializeField] float m_SmoothTime = 0.3f; |
| | | public float smoothTime { |
| | | get { return m_SmoothTime; } |
| | | } |
| | | |
| | | Pattern pattern = Pattern.Reduce; |
| | | float targetValue = 0f; |
| | | int totalSegments = 1; |
| | | int surplusSegments = -1; |
| | | |
| | | float refValue = 0f; |
| | | float timer = 0f; |
| | | float behaviourStartValue = 0f; |
| | | |
| | | float m_CurrentBehaviourValue = 0f; |
| | | float currentBehaviourValue { |
| | | get { return m_CurrentBehaviourValue; } |
| | | set { |
| | | m_CurrentBehaviourValue = value; |
| | | UpdateSurplusSegments(currentBehaviourValue); |
| | | var behaviourDecimalValue = m_CurrentBehaviourValue - (int)m_CurrentBehaviourValue; |
| | | var trueDecimalValue = targetValue - (int)targetValue; |
| | | switch (pattern) |
| | | { |
| | | case Pattern.Add: |
| | | m_SliderForeground.value = behaviourDecimalValue; |
| | | m_SliderMiddleground.value = behaviourDecimalValue > trueDecimalValue ? 1f : trueDecimalValue; |
| | | break; |
| | | case Pattern.Reduce: |
| | | m_SliderMiddleground.value = behaviourDecimalValue; |
| | | m_SliderForeground.value = behaviourDecimalValue < trueDecimalValue ? 0 : trueDecimalValue; |
| | | break; |
| | | case Pattern.None: |
| | | m_SliderMiddleground.value = behaviourDecimalValue; |
| | | m_SliderForeground.value = behaviourDecimalValue; |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | public void SetBaseInfo(int _npcId, ulong _hp, ulong _maxHp, int _level) |
| | | { |
| | | var npcConfig = NPCConfig.Get(_npcId); |
| | | HeroSkinConfig skinConfig = HeroSkinConfig.Get(npcConfig.SkinID); |
| | | |
| | | surplusSegments = -1; |
| | | totalSegments = npcConfig.LifeBarCount; |
| | | targetValue = currentBehaviourValue = ((float)_hp / _maxHp) * totalSegments - 0.0001f; |
| | | var behaviourDecimalValue = currentBehaviourValue - (int)currentBehaviourValue; |
| | | m_SliderForeground.value = m_SliderMiddleground.value = behaviourDecimalValue; |
| | | |
| | | refValue = 0f; |
| | | } |
| | | |
| | | public void Show(ulong _hp, ulong _maxHp) |
| | | { |
| | | var percentage = Mathf.Clamp(_hp, 0, _maxHp) / (float)_maxHp; |
| | | var tempValue = totalSegments * percentage - 0.00001f; |
| | | pattern = tempValue > targetValue ? Pattern.Add : tempValue < targetValue ? Pattern.Reduce : Pattern.None; |
| | | |
| | | behaviourStartValue = currentBehaviourValue; |
| | | targetValue = tempValue; |
| | | |
| | | timer = 0f; |
| | | refValue = 0f; |
| | | } |
| | | |
| | | private void LateUpdate() |
| | | { |
| | | if (Mathf.Abs(currentBehaviourValue - targetValue) > 0.00001f) |
| | | { |
| | | var newValue = Mathf.SmoothDamp(currentBehaviourValue, targetValue, ref refValue, smoothTime); |
| | | currentBehaviourValue = newValue; |
| | | } |
| | | } |
| | | |
| | | static StringBuilder stringBuild = new StringBuilder(); |
| | | private void UpdateSurplusSegments(float _targetValue) |
| | | { |
| | | var currentSurplus = Mathf.CeilToInt(_targetValue); |
| | | if (currentSurplus != surplusSegments) |
| | | { |
| | | surplusSegments = currentSurplus; |
| | | var colorSetLength = m_LifeBarSprites.Length; |
| | | var index = surplusSegments % colorSetLength; |
| | | var nextIndex = index == 0 ? colorSetLength - 1 : index - 1; |
| | | |
| | | m_PrefaceGround.overrideSprite = m_LifeBarSprites[index]; |
| | | m_MiddleGround.overrideSprite = m_LifeBarSprites[index]; |
| | | m_BackGround.overrideSprite = m_LifeBarSprites[nextIndex]; |
| | | |
| | | m_BackGround.SetActive(surplusSegments > 1); |
| | | |
| | | // var chars = surplusSegments.ToString(); |
| | | // stringBuild.Remove(0, stringBuild.Length); |
| | | // for (var i = 0; i < chars.Length; i++) |
| | | // { |
| | | // var numChar = GetNumKey(chars[i]); |
| | | // if (numChar > 0) |
| | | // { |
| | | // stringBuild.Append((char)numChar); |
| | | // } |
| | | // } |
| | | |
| | | m_Surplus.text = surplusSegments.ToString(); |
| | | m_SurplusPercent.text = Mathf.CeilToInt((_targetValue / totalSegments) * 100f).ToString() + "%"; |
| | | } |
| | | } |
| | | |
| | | // int GetNumKey(int _num) |
| | | // { |
| | | // var config = DamageNumConfig.Get("BossLifeBarSurplusNum"); |
| | | // return config.nums[_num - 48]; |
| | | // } |
| | | |
| | | |
| | | enum Pattern |
| | | { |
| | | None, |
| | | Add, |
| | | Reduce, |
| | | } |
| | | |
| | | } |
| | | |
| | | |
| | | |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: f07a44456b77973408de0848b6e737c7 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
| | |
| | | JsonData extendData = JsonMapper.ToObject(vNetData.Msg); |
| | | |
| | | string guid = BattleManager.Instance.GetGUID(vNetPack.packUID); |
| | | BattleField battleField = BattleManager.Instance.CreateBattleField(guid, (int)vNetData.MapID, (int)vNetData.FuncLineID, extendData, redTeamList, blueTeamList); |
| | | BattleField battleField = BattleManager.Instance.CreateBattleField(guid, vNetData, extendData, redTeamList, blueTeamList); |
| | | BattleStartAction battleStartAction = new BattleStartAction(battleField); |
| | | battleField.recordPlayer.PlayRecord(battleStartAction); |
| | | |
| | |
| | | } |
| | | |
| | | public override void Init(int MapID, int FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | { |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList); |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax); |
| | | |
| | | chapter = FuncLineID / 10000; |
| | | wave = MapID == 1 ? FuncLineID % 100 : 1;//第几波怪 |
| | |
| | | |
| | | public IOperationAgent operationAgent; |
| | | |
| | | public byte turnMax; |
| | | |
| | | public int round = 0; |
| | | |
| | | public string guid = string.Empty;//等于string.Empty的时候代表是StoryBattleField 是主线副本 |
| | |
| | | } |
| | | |
| | | public virtual void Init(int _MapID, int _FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | { |
| | | MapID = _MapID; |
| | | redTeamList = _redTeamList; |
| | | blueTeamList = _blueTeamList; |
| | | FuncLineID = _FuncLineID; |
| | | extendData = _extendData; |
| | | this.turnMax = turnMax; |
| | | |
| | | redTeamIndex = 0; |
| | | blueTeamIndex = 0; |
| | |
| | | } |
| | | |
| | | public override void Init(int MapID, int FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | { |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList); |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax); |
| | | |
| | | chapter = FuncLineID / 10000; |
| | | wave = MapID == 1 ? FuncLineID % 100 : 1;//第几波怪 |
| | |
| | | } |
| | | |
| | | public override void Init(int MapID, int FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | { |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList); |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax); |
| | | |
| | | if (null == _blueTeamList || _blueTeamList.Count == 0) |
| | | { |
| | |
| | | } |
| | | |
| | | public override void Init(int MapID, int FuncLineID, JsonData _extendData, |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList) |
| | | List<TeamBase> _redTeamList, List<TeamBase> _blueTeamList, byte turnMax) |
| | | { |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList); |
| | | base.Init(MapID, FuncLineID, extendData, _redTeamList, _blueTeamList, turnMax); |
| | | |
| | | chapter = FuncLineID / 10000; |
| | | wave = MapID == 1 ? FuncLineID % 100 : 1;//第几波怪 |
| | |
| | | |
| | | redTeamList.Add(storyTeam); |
| | | |
| | | CreateBattleField(string.Empty, MapID, FuncLineID, extendData, redTeamList, blueTeamList); |
| | | HB424_tagSCTurnFightInit vNetData = new HB424_tagSCTurnFightInit(); |
| | | vNetData.MapID = (uint)MapID; |
| | | vNetData.FuncLineID = (uint)FuncLineID; |
| | | |
| | | CreateBattleField(string.Empty, vNetData, extendData, redTeamList, blueTeamList); |
| | | } |
| | | else |
| | | { |
| | |
| | | } |
| | | #endregion |
| | | |
| | | public BattleField CreateBattleField(string guid, int MapID, int FuncLineID, JsonData extendData, List<TeamBase> redTeamList, List<TeamBase> blueTeamList) |
| | | public BattleField CreateBattleField(string guid, HB424_tagSCTurnFightInit vNetData, JsonData extendData, List<TeamBase> redTeamList, List<TeamBase> blueTeamList) |
| | | { |
| | | BattleField battleField = null; |
| | | |
| | | int MapID = (int)vNetData.MapID; |
| | | int FuncLineID = (int)vNetData.FuncLineID; |
| | | |
| | | bool isCreate = true; |
| | | if (battleFields.TryGetValue(guid, out battleField)) |
| | |
| | | } |
| | | |
| | | if (isCreate) |
| | | { |
| | | { |
| | | battleField = BattleFieldFactory.CreateBattleField(guid, MapID, FuncLineID, extendData, redTeamList, blueTeamList); |
| | | |
| | | if (string.IsNullOrEmpty(guid)) |
| | |
| | | |
| | | |
| | | |
| | | battleField.Init(MapID, FuncLineID, extendData, redTeamList, blueTeamList); |
| | | battleField.Init(MapID, FuncLineID, extendData, redTeamList, blueTeamList, vNetData.TurnMax); |
| | | |
| | | return battleField; |
| | | } |
| | |
| | | |
| | | public RendererAdjuster buttonsAdjuster; |
| | | |
| | | public BossLifeBar bossLifeBar; |
| | | |
| | | |
| | | public SkillWordCell[] skillWordCells; |
| | | |
| | | public BossHeadCell bossHeadCell; |
| | | |
| | | public Text txtBossName; |
| | | |
| | | public Text txtBattleRound; |
| | | |
| | | public TotalDamageDisplayer totalDamageDisplayer; |
| | | |
| | | // 生命周期 |
| | | protected override void InitComponent() |
| | | { |
New file |
| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class BossHeadCell : MonoBehaviour |
| | | { |
| | | public Image imgFrame; |
| | | |
| | | public Image imgIcon; |
| | | |
| | | public Image imgDecoration; |
| | | |
| | | public Text txtLv; |
| | | |
| | | public void SetTeamHero(TeamHero teamHero) |
| | | { |
| | | |
| | | } |
| | | } |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: d9ef8620f499f5249843e4a454d4fbe3 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |
New file |
| | |
| | | using System.Collections; |
| | | using System.Collections.Generic; |
| | | using UnityEngine; |
| | | using UnityEngine.UI; |
| | | |
| | | public class TotalDamageDisplayer : MonoBehaviour |
| | | { |
| | | public Image damageBackground; |
| | | |
| | | public Text textDamage; |
| | | |
| | | public Text textTotalDesc; //总伤害或者总治疗 |
| | | |
| | | public void SetDamage(bool isEnd, BattleDmgInfo dmgInfo) |
| | | { |
| | | if (dmgInfo == null) |
| | | { |
| | | return; |
| | | } |
| | | |
| | | if (dmgInfo.IsType(DamageType.Recovery)) |
| | | { |
| | | |
| | | } |
| | | else if (dmgInfo.IsType(DamageType.Damage) || dmgInfo.IsType(DamageType.Realdamage)) |
| | | { |
| | | |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
New file |
| | |
| | | fileFormatVersion: 2 |
| | | guid: 5052e62895312ba43a5bd9b0e3c8edb1 |
| | | MonoImporter: |
| | | externalObjects: {} |
| | | serializedVersion: 2 |
| | | defaultReferences: [] |
| | | executionOrder: 0 |
| | | icon: {instanceID: 0} |
| | | userData: |
| | | assetBundleName: |
| | | assetBundleVariant: |