using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using YLTask;
using GameFramework.Event;
using UnityGameFramework.Runtime;
///
/// 任务事件处理者 修改器
///
public partial class TaskEventProcessor
{
private void InitModifier()
{
_TaskEventDict.Add(Enum_EventType.TaskCardActived + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), StartTaskCard);
_TaskEventDict.Add(Enum_EventType.MissionStepProcess + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), UpdateTaskCard);
_TaskEventDict.Add(Enum_EventType.MissionStepComplete + Enum_TaskCmdType.FinishTaskCard_ID.ToString(), FinishTaskCard);
_TaskEventDict.Add(Enum_EventType.TaskCardActived + Enum_TaskCmdType.DrawSysMail_ID.ToString(), StartTaskCard);
_TaskEventDict.Add(Enum_EventType.MissionStepProcess + Enum_TaskCmdType.DrawSysMail_ID.ToString(), UpdateTaskCard);
_TaskEventDict.Add(Enum_EventType.MissionStepComplete + Enum_TaskCmdType.DrawSysMail_ID.ToString(), FinishTaskCard);
EventComponent eventCmpt = GameEntry.GetComponent();
eventCmpt.Subscribe(UserLvlUpEvent.EventId, UserLevelUpProcessor);
eventCmpt.Subscribe(HeroLvlUpEvent.EventId, HeroLevelUpProcessor);
eventCmpt.Subscribe(User_AddItemEvent.EventId, UserAddItemProcessor);
eventCmpt.Subscribe(HeroTupoEvent.EventId, HeroTupoProcessor);
}
private void CleanMonifier()
{
EventComponent eventCmpt = GameEntry.GetComponent();
if (eventCmpt.Check(UserLvlUpEvent.EventId, UserLevelUpProcessor))
{
eventCmpt.Unsubscribe(UserLvlUpEvent.EventId, UserLevelUpProcessor);
}
if (eventCmpt.Check(HeroLvlUpEvent.EventId, HeroLevelUpProcessor))
{
eventCmpt.Unsubscribe(HeroLvlUpEvent.EventId, HeroLevelUpProcessor);
}
if (eventCmpt.Check(User_AddItemEvent.EventId, UserAddItemProcessor))
{
eventCmpt.Unsubscribe(User_AddItemEvent.EventId, UserAddItemProcessor);
}
if (eventCmpt.Check(HeroTupoEvent.EventId, HeroTupoProcessor))
{
eventCmpt.Unsubscribe(HeroTupoEvent.EventId, HeroTupoProcessor);
}
}
///
/// 玩家获得新道具事件
///
///
///
public void UserAddItemProcessor(object sender, GameEventArgs e)
{
var evt = e as User_AddItemEvent;
if (null != evt)
{
// todo: add your code here
if (evt.Item.IsWeapon)
{
// todo: 大解: 友盟统计: 获得武器 2021年9月13日19:08:21
// 友盟统计: 武器获得
AndroidInteractive.CallJavaFunction("onEvent", "e_weapon", "weapon_WeaponGet", evt.Item.typeId.ToString());
}
if (evt.Item.IsYanLing)
{
// todo: 大解: 友盟统计: 获得武器 2021年9月13日19:08:25
// 友盟统计: 言灵获得
AndroidInteractive.CallJavaFunction("onEvent", "e_yanling", "yanling_YanlingGet", evt.Item.typeId.ToString());
}
}
}
///
/// 玩家等级提升事件
///
///
public void UserLevelUpProcessor(object sender, GameEventArgs e)
{
var evt = e as UserLvlUpEvent;
if (null != evt)
{
// 设置玩家名称
AndroidInteractive.CallJavaFunction("SetPlayerLV", evt.newlvl.ToString());
// 队列显示玩家升级
PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PlayerLvUp, evt.newlvl);
// 友盟统计: 玩家等级
AndroidInteractive.CallJavaFunction("onEvent", "e_player_lvlup", "lvl",evt.newlvl.ToString());
}
}
///
/// 唤灵师等级提升事件
///
///
public void HeroLevelUpProcessor(object sender, GameEventArgs e)
{
var evt = e as HeroLvlUpEvent;
if (null != evt)
{
//// 队列显示唤灵师升级
//PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.HuanLingShiLvUp, "");
//int power = evt.HeroVo.GetPower() - evt.PowerAdded;
//int added = evt.PowerAdded;
//string powerStr = "" + power.ToString() + "";
//string add = " + ";
//string addedStr = "" + added.ToString() + "";
//// 队列显示战力提升
//PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PowerAdd, powerStr + add + addedStr);
// 增加3D场景 升级特效
ResourceHelper.Instance.LoadAssetBundle("juese_shengji", (ab) =>
{
if (ab != null )
{
GameObject obj = (GameObject)GameObject.Instantiate(ab.LoadAsset("juese_shengji"));
obj.transform.parent = HeroPlayerController.Instance.m_Hero.transform;
obj.transform.SetLocalPositionX(0);
obj.transform.SetLocalPositionY(0);
obj.transform.SetLocalPositionZ(0);
}
});
// 升级UI特效
UI_TipsWindow.ShowLevelUpEeffect(evt.HeroVo.level);
}
}
///
/// 唤灵师突破事件
///
///
public void HeroTupoProcessor(object sender, GameEventArgs e)
{
var evt = e as HeroTupoEvent;
if (null != evt)
{
//// 队列显示唤灵师升级
//PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.HuanLingShiLvUp, "");
//// 队列显示战力提升
//PopupEffectQueueHelper.Instance.ShowEffect(ePopupEffectType.PowerAdd,"星级增加至"+ evt.star+"星");
}
}
///
/// 开始动作 剧情对话
///
public void StartTaskCard(GameEventArgs e)
{
//TaskCardEventAtive start = e as TaskCardEventAtive;
//TaskCardVo cvo = start.cardVo;
//List svo = cvo.curSteps;
//foreach (var item in svo)
//{
// if (item.ShouldDoStartAction())
// {
// List paramList = item.mo().StartAction.ParamList;
// int npdID = paramList[0];
// int stageID = paramList[1];
// PanelHelper.Instance.ShowPanel("UI_TaskDialogWindow", panel =>
// {
// panel.GetComponent().Init(0, npdID, stageID, npdID + "_" + stageID + "_" + 0, 0, null);
// });
// break;
// }
//}
}
public void UpdateTaskCard(GameEventArgs e)
{
TaskEventStepProcess process = e as TaskEventStepProcess;
}
///
/// 完成动作 剧情对话
///
public void FinishTaskCard(GameEventArgs e)
{
TaskEventStepFinish finish = e as TaskEventStepFinish;
TaskCardVo cvo = finish.cardVo;
Ins_TaskStepVo svo = finish.stepVo;
if (svo.ShouldDoFinishAction())
{
List paramList = svo.mo().FinishAction.ParamList;
int npdID = paramList[0];
int stageID = paramList[1];
PanelHelper.Instance.ShowPanel("UI_TaskDialogWindow", panel =>
{
panel.GetComponent().Init(0, npdID, stageID, npdID + "_" + stageID + "_" + 0, 0, null);
});
}
// 更新任务追踪信息
UI_TaskTracking.UpdateTaskInfo();
}
}