public PlayerCursor(string player, GraphicsDevice aGraphicsDevice, BaseDisplay aParent) : base(aGraphicsDevice, aParent) { this.player = player; BackColor = Color.White * 0.0f; IPC = (IPlayerCursor)parent; IPC.Players.Add(player, this); }
//private int timedown = 600; public WarningMessage(GraphicsDevice aGraphicsDevice, BaseDisplay aParent, FileIcon focus) : base(aGraphicsDevice, aParent) { BackColor = Color.White * 0.0f; Visible = false; this.focus = focus; focus.Warning = this; }
public GameOver(GraphicsDevice aGraphicsDevice, BaseDisplay parent) : base(aGraphicsDevice, parent) { CanMove = false; BorderOn = false; backColor = Color.White * 0.0f; canClose = false; }
//private int Index { get => index; set => SetIndex(value); } public MainMenu(BaseDisplay parent) : base(parent) { canMove = false; canClose = false; BorderOn = false; backColor = Color.Transparent; }
//private List<AnimeButton> buts = new List<AnimeButton>(); //private int index = 0; // private int Index { get => index; set => SetIndex(value); } public BackMenu(BaseDisplay parent) : base(parent) { BorderOn = false; CanClose = false; CanMove = false; backColor = Color.Transparent; }
/// <summary> /// 显示boss脚底光环特效 /// </summary> /// <param name="show">true,显示,false,隐藏</param> private void ShowBossFootEffect(BaseDisplay boss) { if (MeVo.instance.mapId == MapTypeConst.WORLD_BOSS) { FootEffect = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_BossScene); } else { FootEffect = EffectMgr.Instance.GetMainEffectGameObject(EffectId.Main_BossFootBuff); Log.info(this, "FootEffect is Null " + (FootEffect == null)); } float scale = boss.GetMeByType <ActionDisplay>().BoxCollider2D.size.x / 5f; scale += 0.2f; if (FootEffect) { FootEffect.name = "FootEffect"; FootEffect.transform.transform.localScale = new Vector3(scale, scale, scale); FootEffect.transform.position = boss.GetMeByType <ActionDisplay>().GoBase.transform.position + new Vector3(0, 0, -10); //位置 FootEffect.transform.parent = boss.GetMeByType <ActionDisplay>().GoBase.transform; FootEffect.SetActive(true); ResetSpriteRender(FootEffect); } }
/// <summary> /// 主线任务引导 /// </summary> /// <param name="button"></param> private void OnMainTaskButtonClick(GameObject button) { if (GuideModel.Instance.IsShowGuide) { return; //触发了指引则不响应任务引导 } int needLevel = StringUtils.GetStringToInt(_taskMode.CurrentMainTaskVo.SysTaskVo.level)[0]; if (needLevel > MeVo.instance.Level) { MessageManager.Show("请升级到" + needLevel + "级再来接取"); return; } string trace = TaskUtil.GetTraceInfo(_taskMode.CurrentMainTaskVo); string[] items = trace.Split('.'); uint taskTargetMapId = uint.Parse(items[1]); if (taskTargetMapId == AppMap.Instance.mapParser.MapId) { MapMode.Instance.NeedGuideMainTask = false; BaseDisplay display = TaskUtil.GetTaskDisplay(trace); MoveTo(display); } else { MapMode.Instance.NeedGuideMainTask = true; CopyControl.Instance.AutoChangeWorld(taskTargetMapId); } vp_Timer.CancelAll("ShowTaskGuide"); _taskGuide.SetActive(false); }
public IEnumerator ThrowDisplay(BaseDisplay throwDisplay, BaseControler hostController, int dire = 0, Action throwComplete = null) { if (throwDisplay != null) { //Debug.Log("开始投掷*******************************"); MoveControllerBase mcb = throwDisplay.Controller.MoveController; StatuControllerBase scb = throwDisplay.Controller.StatuController; float f = 0.0f; if (mcb != null) { if (throwDisplay is MonsterDisplay) { f = 2 / ((throwDisplay as MonsterDisplay).BoxCollider2D.size.x); (mcb as MonsterMoveController).StartY = throwDisplay.Controller.transform.position.y - 0.1f; yield return(StartCoroutine((mcb as MonsterMoveController).MoveByParabola(0.68f * f, 4.0f * f, 32.0f * f, dire))); } else if (throwDisplay is PlayerDisplay) { yield return(StartCoroutine((throwDisplay.Controller.StatuController as PlayerStatuController).MoveByParabola(throwDisplay.Controller.Me.GoBase, SpeedConst.PlayerHurtBackMoveSpeed, 6.0f, 30.0f))); } //Debug.Log("结束投掷****************结束***************"); } } if (throwComplete != null) { throwComplete(); } }
/// <summary> /// Called exclusively by RegisterIntoDisplay(). Casts the target display properly using T, then handles registration. /// </summary> /// <typeparam name="T"></typeparam> /// <param name="info"></param> /// <param name="display"></param> private void RegisterDisplayHelper <T>(MethodInfo info, BaseDisplay display) { BaseDisplay <T> casteddisplay = display as BaseDisplay <T>; //Cast so we can interact with it directly - BaseDisplay is an empty class used for simple references. Func <T> casteddelegate = (Func <T>)Delegate.CreateDelegate(typeof(Func <T>), _runtimeScript, info); casteddisplay.RegisterDisplayDelegate(_runtimeScript, casteddelegate); }
public StartMenu(GraphicsDevice aGraphicsDevice, BaseDisplay aParent) : base(aGraphicsDevice, aParent) { canMove = false; canClose = false; BorderOn = false; BackColor = Color.White * 0.0f; Visible = false; }
public Credit(BaseDisplay parent) : base(parent) { BorderOn = false; CanClose = false; CanMove = false; backColor = Color.Transparent; visible = false; }
/// <summary> /// 任务寻路处理 /// </summary> /// <param name="display"></param> /// <returns></returns> private void MoveTo(BaseDisplay display) { if (display == null) return; if (display.GoBase == null) return; AutoShieldView.Instance.OpenView(); Transform target = display.GoBase.transform; AppMap.Instance.clickVo.SaveClicker(display); AppMap.Instance.me.Controller.MoveTo(target.position.x, target.position.y); }
/**保存--鼠标点中游戏物体**/ public void SaveClicker(BaseDisplay clicker) { if (clicker == null) { _isClick = false; return; } _display = clicker; _isClick = true; }
public Hacking(GraphicsDevice aGraphicsDevice, BaseDisplay parent) : base(aGraphicsDevice, parent) { Visible = false; Text = GetText("Hacking"); BDText.ForeColor = System.Drawing.Color.Yellow; BorderColor = Color.DarkRed; backColor = new Color(255, 150, 150); CanClose = false; CanMove = false; }
protected override void LoadPetCallback(BaseDisplay petDisplay) { if (AppMap.Instance.mapParser.MapVo.type == MapTypeConst.COPY_MAP) { petDisplay.Controller.AiController.SetAi(true); } else { petDisplay.Controller.AiController.SetAi(false); } }
void StopInteraction() { if (requestQueue.Count != 0) { ActivateDisplay(requestQueue.Dequeue()); } else { currentDisplay = null; } }
/// <summary> /// 将A面向B /// </summary> /// <param name="a"></param> /// <param name="b"></param> public static void MakeAFaceToB(BaseDisplay a, BaseDisplay b) { if (a.CurFaceDire == Directions.Left && a.Controller.transform.position.x < b.Controller.transform.position.x) { a.ChangeDire(Directions.Right); } else if (a.CurFaceDire == Directions.Right && a.Controller.transform.position.x > b.Controller.transform.position.x) { b.ChangeDire(Directions.Left); } }
// private static BaseDisplay TranslateBasicData(MainSearchResults mainResultsData, MainSearchResult sourceResult) { //Hold result var result = new BaseDisplay(); //Meta info result.Meta_Language = "en"; //Not sure how to obtain this result.Meta_Id = sourceResult.RecordId; try { result.Meta_LastUpdated = DateTime.Parse(GetValueIfPresent(sourceResult.Properties, "T_LastUpdated") ?? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); } catch { } try { result.Meta_StateId = int.Parse(GetValueIfPresent(sourceResult.Properties, "T_StateId") ?? "0"); } catch { } //Common info result.BroadType = GetValueIfPresent(sourceResult.Properties, "T_BroadType"); result.CTDLType = GetValueIfPresent(sourceResult.Properties, "T_CTDLType"); result.CTDLTypeLabel = GetValueIfPresent(sourceResult.Properties, "T_CTDLTypeLabel"); result.CTID = GetValueIfPresent(sourceResult.Properties, "CTID") ?? GetValueIfPresent(sourceResult.Properties, "ctid") ?? "unknown"; result.Name = sourceResult.Name; result.FriendlyName = sourceResult.FriendlyName; result.Description = sourceResult.Description; //Owner try { if (sourceResult.Properties.ContainsKey("Owner")) { if (mainResultsData.SearchType == "competencyframework") { var owner = ( JObject )sourceResult.Properties["Owner"]; if (owner != null) { result.OwnedByLabel = new LabelLink() { Label = CompetencyFrameworkServicesV2.GetEnglishString(owner["ceterms:name"], "Unknown Owner"), URL = "/resources/" + owner["ceterms:ctid"].ToString() }; } } else { result.OwnedByLabel = new LabelLink() { Label = GetValueIfPresent(sourceResult.Properties, "Owner") ?? "Unknown Owner", URL = "/organization/" + GetValueIfPresent(sourceResult.Properties, "OwnerId") ?? "0" }; } } } catch { } return(result); }
/**执行移动**/ private bool moveTo(BaseDisplay display, MoveEndCallback callback = null) { if (display == null) { return(false); } //if (display.goCloth == null) return false; Transform transform = display.GoBase.transform; AppMap.Instance.clickVo.SaveClicker(display); (AppMap.Instance.me.Controller as MeControler).MoveToAndTellServer(transform.position.x, transform.position.y, callback); transform = null; return(true); }
//PART OF PROCESS() REFACTORING public BaseDisplay InstantiateModule(BaseDisplay readerPrefab) { BaseDisplay module; if (interfacePrefabs.ContainsKey(readerPrefab)) { module = interfacePrefabs[readerPrefab]; } else { module = interfacePrefabs[readerPrefab] = GameObject.Instantiate(readerPrefab, transform); } module.gameObject.SetActive(false); return(module); }
/// <summary> /// 任务寻路处理 /// </summary> /// <param name="display"></param> /// <returns></returns> private bool MoveTo(BaseDisplay display) { if (display == null) { return(false); } if (display.GoBase == null) { return(false); } Transform target = display.GoBase.transform; AppMap.Instance.clickVo.SaveClicker(display); AppMap.Instance.me.Controller.MoveTo(target.position.x, target.position.y); return(true); }
/**销毁场景中所有游戏对象**/ public void dispose() { _playerList.Clear(); _monsterList.Clear(); _npcList.Clear(); BaseDisplay display = null; while (objectList.Count > 0) { display = objectList[0]; remove(display); } if (_me != null && _playerList.IndexOf(_me) == -1) { _playerList.Add(_me); } }
private void OnGuideTask(GameObject button) { string trace; if (_taskVo != null) { trace = TaskUtil.GetTraceInfo(_taskVo); } else { trace = "n.10001.20000"; } BaseDisplay display = TaskUtil.GetTaskDisplay(trace); MoveTo(display); Singleton <TaskView> .Instance.CloseView(); }
/// <summary> /// 抓取; /// </summary> public void Grasp() { //如果当前已经抓取了,就不让抓了; if (MeController.Me.IsGrasp || MeController.Me.IsGrasped) { return; } IList <MonsterDisplay> findMonsters = findNearestMonsters(); BaseDisplay tmpGrapDisplay = null; if (findMonsters.Count > 0) { //搜寻当前状态是否有倒地的; foreach (MonsterDisplay md in findMonsters) { if ((md.Controller.StatuController.CurrentStatu == Status.HURTDOWN || md.Controller.StatuController.CurrentStatu == Status.HURT3 || md.Controller.StatuController.CurrentStatu == Status.HURT4) && md.IsGrasped == false) { tmpGrapDisplay = md; //Debug.Log("找到了倒地的怪物了"); break; } } if (tmpGrapDisplay != null) { //设置抓取者; tmpGrapDisplay.SetGraspedController(MeController); //设置被抓取者; MeController.Me.SetGraspController(tmpGrapDisplay.Controller); setActionControllerMoveChangeStatus((tmpGrapDisplay.Controller as ActionControler), false, false); resetGraspState(); MeController.AttackController.AddGrapDispaly( tmpGrapDisplay, MeController, PlayConst.POS_NECK, true, false); CurStatus = GraspThrowStatus.Grasp; } } }
/// <summary> /// 过两帧再添加怪物的其他显示信息,避免出现这些其他信息提前出现引起混乱 /// </summary> /// <param name="display"></param> /// <returns></returns> private IEnumerator AddMonsterAdditionalView(BaseDisplay display) { //隔1帧再显示血条信息 //yield return 0; var monsterDisplay = display as MonsterDisplay; display.GoCloth.transform.localPosition = new Vector3(0, 0, -30); if (display.Controller != null) { //添加名字UI GameObject child = NGUITools.AddChild(display.Controller.gameObject); if (monsterDisplay != null) { BoxCollider2D boxCollider2D = monsterDisplay.BoxCollider2D; float y = (boxCollider2D.center.y + boxCollider2D.size.y / 2) * display.GoCloth.transform.localScale.y; child.transform.localPosition = new Vector3(0f, y + 0.3f, 0f); child.name = "pivot"; var item = display.GetVo() as MonsterVo; if (item != null) { var actionControler = display.Controller as ActionControler; if (actionControler != null) { //以下三行预处理的是怪物说话信息 GameObject myBossMsg = HudView.Instance.AddItem("msg", child.transform, HudView.Type.Monster); actionControler.GoBossMsg = myBossMsg; monsterDisplay.InitSpeakView(myBossMsg); } AppMap.Instance.AddMonster(monsterDisplay); } //新增怪物刷出特效 /* if ((display.GetMeVoByType<MonsterVo>()).bornType != 3) //3为空中掉下来的怪物,不播放这个出生特效 * { * ShowMonsterSpawnEffect(display.Controller.transform.position); * }*/ //display.ShowBornModelEffect(); monsterDisplay.ReadyToUseAi(AiStartDelayTime); } } yield return(0); }
/// <summary> /// 创建传送点 /// </summary> /// <param name="mapId"></param> private void CreateMapPoint(string mapId) { if (Convert.ToInt32(mapId) > 10000 && Convert.ToInt32(mapId) < 20000) { SysMapVo map = BaseDataMgr.instance.GetMapVo(uint.Parse(mapId)); string[] worldTransPos = StringUtils.GetValueListFromString(map.world_trans_pos); AppMap.Instance.mapParser.WorldTransPosX = float.Parse(worldTransPos[0]) * GameConst.PositionUnit; AppMap.Instance.mapParser.WorldTransPosY = float.Parse(worldTransPos[1]) * GameConst.PositionUnit; string[] TransPos = StringUtils.GetValueListFromString(map.trans_pos); AppMap.Instance.mapParser.TransPosX = float.Parse(TransPos[0]) * GameConst.PositionUnit; AppMap.Instance.mapParser.TransPosY = float.Parse(TransPos[1]) * GameConst.PositionUnit; //创建副本传送点 var vo = new DisplayVo { X = AppMap.Instance.mapParser.TransPosX, Y = AppMap.Instance.mapParser.TransPosY, ClothUrl = "Model/Teleport/Empty.assetbundle", ModelLoadCallBack = LoadMapPointCallBack }; BaseDisplay display = AppMap.Instance.CreateMapPoint(vo); var mapPointDisplay = display as MapPointDisplay; if (mapPointDisplay != null) { mapPointDisplay.jumpMapId = 20001; } //创建世界传送点 var voWorld = new DisplayVo { X = AppMap.Instance.mapParser.WorldTransPosX, Y = AppMap.Instance.mapParser.WorldTransPosY, ClothUrl = "Model/Teleport/Empty.assetbundle", ModelLoadCallBack = LoadMapPointCallBack }; BaseDisplay displayWorld = AppMap.Instance.CreateWorldMapPoint(voWorld); var mapPointDisplayWorld = displayWorld as MapPointDisplay; if (mapPointDisplayWorld != null) { mapPointDisplayWorld.jumpMapId = 20001; } } }
private void LoadMonsterCallback(BaseDisplay display) { if (StoryConst.LEFT == dir) { display.ChangeDire(Directions.Left); } else { display.ChangeDire(Directions.Right); } MonsterAiController aiController = display.Controller.gameObject.GetComponent <MonsterAiController>(); if (null != aiController) { GameObject.Destroy(aiController); } modelLoaded = true; }
private void LoadPlayerModelBack(BaseDisplay display) { var player = display as PlayerDisplay; //名称 GameObject name = NGUITools.AddChild(display.Controller.gameObject); player.ChangeDire(Directions.Right); BoxCollider2D boxCollider2D = player.BoxCollider2D; float y = (boxCollider2D.center.y + boxCollider2D.size.y * 0.5f) * display.GoCloth.transform.localScale.y; ; name.name = "name"; Transform mTrans = name.transform; mTrans.localPosition = new Vector3(0f, y + 0.2f, 0f); GameObject goName = HudView.Instance.AddItem(display.GetVo().Name, mTrans, HudView.Type.Player); (player.Controller as ActionControler).GoName = goName; if ((AppMap.Instance.mapParser.MapId == MapTypeConst.ARENA_MAP) || (AppMap.Instance.mapParser.MapId == MapTypeConst.GoldSilverIsland_MAP)) { display.Controller.AiController.SetAi(true); //英雄榜刚开始启用AI } else { display.Controller.AiController.SetAi(false); } if (SystemSettingMode.Instance.HidePlayer && MeVo.instance.mapId != MapTypeConst.ARENA_MAP && MeVo.instance.mapId != MapTypeConst.GoldSilverIsland_MAP) { //如果系统设置有设置隐藏玩家,则不显示玩家 display.GoBase.SetActive(false); display.Controller.GoName.SetActive(false); } if (display.GetMeVoByType <BaseRoleVo>().CurHp == 0) { display.Controller.StatuController.SetStatu(Status.DEATH); //血量为0时设置为死亡状态 } player.GetMeVoByType <PlayerVo>().UpdatePetDisplay(); }
private void LoadMonsterCallBack(BaseDisplay display) { var monsterVo = display.GetMeVoByType <MonsterVo>(); var mapRange = AppMap.Instance.mapParser.CurrentMapRange; if (monsterVo.X > (mapRange.MinX + mapRange.MaxX) / 2) { display.ChangeDire(Directions.Left); } else { display.ChangeDire(Directions.Right); } Log.info(this, string.Format("Monster Id : {0} Model Id: {1} Quality: {2}", monsterVo.MonsterVO.id, monsterVo.MonsterVO.res, monsterVo.MonsterVO.quality)); //为boss添加脚底特效 if (monsterVo.MonsterVO.quality == MonsterType.TypeBoss) { ShowBossFootEffect(display); //显示Boss预警特效 EffectMgr.Instance.CreateUIEffect(EffectId.UI_BossComingWarning, Vector3.zero); } //从空中产生怪物 if (monsterVo.bornType == (int)MonsterBornType.BornFromSky) { _monsterPresent = display; float x = GetRandomValueX(); float heroX = AppMap.Instance.me.GoBase.transform.position.x; int direction = x < heroX ? Directions.Right : Directions.Left; display.ChangeDire(direction); display.GoBase.transform.position = new Vector3(x, 6f, /*display.GoBase.transform.position.z*/ Random.Range(mapRange.MinY, mapRange.MaxY) * 5f);//由重力来完成掉落 display.Controller.MoveController.MonsterDrop(StartShowMonsterAdditionalView); StartShowMonsterAdditionalView(display); } else { StartShowMonsterAdditionalView(display); } }
/**本角色与游戏对象(场景传送点,副本传送点,NPC,怪物,BOSS)碰撞时回调**/ override public void hitCallback(BaseDisplay display) { switch (display.Type) { case DisplayType.MAP_POINT: HitMapPoint(); break; case DisplayType.NPC: var npcId = display.GetVo().Id; if (npcId == NpcIdConst.NpcWantedTask) { /*if (me.GetVo().Level < 36) * { * var message = LanguageManager.GetWord("AppMap.WantedTaskLimit"); * MessageManager.Show(message); * } * else * { * if (TaskModel.Instance.CurrentSubTaskVo != null) * { * var message = LanguageManager.GetWord("AppMap.WantedTaskRemind"); * MessageManager.Show(message); * } * else * { * Singleton<WantedTaskView>.Instance.OpenView(); * } * }*/ //暂时屏蔽掉悬赏任务入口 } else { Singleton <NpcDialogModel> .Instance.CurrentNpcId = display.GetVo().Id; Singleton <NpcDialogView> .Instance.OpenView(); } break; } }