private bool IsValidLargeLock(bool isFullTest = true) { //if (m_dataNPC.TargetID != null && temp_TargetID != m_dataNPC.TargetID && Storage.ReaderWorld.CollectionInfoID.ContainsKey(m_dataNPC.TargetID)) //if (m_dataNPC.TargetID != null && temp_TargetID != m_dataNPC.TargetID) //if (m_dataNPC.TargetID != null && temp_TargetID != m_dataNPC.TargetID) //if (m_dataNPC.TargetID != null && temp_TargetID != m_dataNPC.TargetID && Storage.ReaderWorld.CollectionInfoID.ContainsKey(m_dataNPC.TargetID)) bool isCheckLarge = false; bool isCheckTarget = true; if (!string.IsNullOrEmpty(m_dataNPC.TargetID) && Storage.Instance.ReaderSceneIsValid) { isCheckLarge = isCheckTarget = Storage.ReaderWorld.CollectionInfoID.ContainsKey(m_dataNPC.TargetID); } if (m_dataNPC.TargetID != null && temp_TargetID != m_dataNPC.TargetID && isCheckTarget) { if (isCheckLarge) { temp_isLargeBlock = !Storage.ReaderWorld.CollectionInfoID[m_dataNPC.TargetID].Data.IsFloor(); } else { temp_isLargeBlock = false; } temp_TargetID = m_dataNPC.TargetID; if (!temp_isLargeBlock) { string nameFiledTarget = Helper.GetNameField(m_dataNPC.TargetPosition); List <ModelNPC.ObjectData> objs = new List <ModelNPC.ObjectData>(); ReaderScene.GetObjectsDataFromGridTo(ref objs, nameFiledTarget); if (objs != null) { foreach (var item in objs) { if (!item.IsFloor()) { temp_isLargeBlock = true; break; } } } } //temp_isLargeBlock = false == Storage.ReaderWorld.CollectionInfoID[m_dataNPC.TargetID].Data.IsFloor(); } if (!isFullTest) { return(temp_isLargeBlock); } float distField = Vector2.Distance(new Vector2(m_dataNPC.TargetPosition.x, m_dataNPC.TargetPosition.y) , new Vector2(m_dataNPC.Position.x, m_dataNPC.Position.y)); return(temp_isLargeBlock || distField > 1); }