private void UpdateProcessTime(Int32 seq) { for (int i = 1; i <= MatchSystem.instance.playerCount; i++) { var player = gameCenter.playerSet.GetPlayer(i); List <Int32> rmvList = new List <Int32>(); player.processFactory.ForEachProcessBlock((CombatGameCenter.ProcessFactory.ProcessBlock block) => { if (block.isRun) { float time = CombatFrameManager.GetIntervalTime(block.startSeq, seq); if (time >= block.quest.processSecond) { rmvList.Add(block.index); player.SetMoney(player.money + block.quest.reward); } } }); for (int offset = 0; offset < rmvList.Count; offset++) { player.processFactory.RemoveQuest(rmvList[offset] - offset); player.RemoveQuest(rmvList[offset] - offset); } onChangeProcess?.Invoke(i); if (rmvList.Count > 0) { onFinishProcess?.Invoke(i); } } }
public CombatManager.StateType LogicUpdate(Int32 seq) { CombatManager.StateType nextState = CombatManager.StateType.Auction; AuctionData auction = gameCenter.auction; float dt = CombatFrameManager.GetIntervalTime(m_StartSeq, seq); float leftTime = 0; if (auction.GetPassPlayerCount() >= MatchSystem.instance.playerCount) { // 全员放弃竞拍 NextAuctionItem(auction, seq); } else { if (auction.currentCaller == null) { // 无人叫价 leftTime = Math.Max(NOBODY_CALL_TIME - dt, 0); if (dt >= NOBODY_CALL_TIME) { // 流拍 NextAuctionItem(auction, seq); } } else { // 已有人叫价 leftTime = Math.Max(ANYBODY_CALL_TIME - dt, 0); if (dt >= ANYBODY_CALL_TIME) { // 竞拍成功 var player = auction.currentCaller; var price = auction.GetCurrentPrice(); player.SetMoney(player.money - price); ReceiveAuctionItem(player.id, auction.GetCurrentProp()); NextAuctionItem(auction, seq); } } } if (auction.IsEnd()) { nextState = CombatManager.StateType.Operation; } onUpdate?.Invoke(leftTime); return(nextState); }
private void UpdateOperationTime(Int32 seq) { float dt = CombatFrameManager.GetIntervalTime(m_StartSeq, seq); Int32 dtInt = (Int32)dt; if (m_IsFreezen) { if (dtInt < m_FreezenTime) { m_CurrTime = dtInt; if (onChangeFreezenTime != null) { onChangeFreezenTime.Invoke(m_FreezenTime - m_CurrTime); } } else { m_IsFreezen = false; m_CurrTime = 0; m_StartSeq = seq; if (onChangeCountdownTime != null) { onChangeCountdownTime.Invoke(m_OpTime - m_CurrTime); } } } else { if (dtInt != m_CurrTime) { m_CurrTime = dtInt; if (onChangeCountdownTime != null) { onChangeCountdownTime.Invoke(m_OpTime - m_CurrTime); } } } }
private void UpdateQuestPanel() { for (int i = 0; i < m_PnlProcessBlocks.Count; i++) { var block = selfPlayer.processFactory.GetProcessBlock(i); var view = m_PnlProcessBlocks[i]; if (block != null) { Int32 runTime = 0; Int32 CurrSeq = CombatFrameManager.instance.seq; if (block.isRun) { runTime = (Int32)CombatFrameManager.GetIntervalTime(block.startSeq, CurrSeq); } view.ResetQuest(block.quest); view.UpdateQuest(block.matBuffer, runTime); } else { view.ResetQuest(CombatGameCenter.Quest.empty); } } }