/// <summary> /// 替换等待的佣兵 /// </summary> /// <param name="position">替换的位置</param> /// <param name="waitGeneral"></param> public bool ReplaceWaitGeneral(int position, out IGeneral waitGeneral) { waitGeneral = null; position = position < 0 ? 0 : position; if (_waitQueue.Count > 0) { var general = _waitQueue.Dequeue(); if (general.LifeNum > 0) { general.IsWait = false; if (position != 0) { general.Position = position; } int index = general.Position - 1; if (index > -1 && index < _generalList.Length) { _generalList[index] = general; waitGeneral = general; } return(true); } } return(false); }
/// <summary> /// 找纵向 /// </summary> /// <param name="position"></param> /// <returns></returns> public virtual IGeneral[] FindVertical(int position) { List <IGeneral> generalList = new List <IGeneral>(); if (position > _generalList.Length && position <= 0) { return(generalList.ToArray()); } IGeneral general = FindGeneral(position); if (general != null) { int columnIndex = (general.Position - 1) / MaxNumber; for (int i = 0; i < MaxNumber; i++) { int index = (columnIndex * MaxNumber) + i; if (_generalList[index] != null && _generalList[index].LifeNum > 0) { generalList.Add(_generalList[index]); } } } return(generalList.ToArray()); }
public SJTMonsterQueue(IGeneral general) { if (general != null) { SetQueue(general.Position - 1, general); } }
public Dictionary <IGeneral, string> ConversationGenerator(IGeneral general1, IGeneral general2) { Dictionary <IGeneral, string> conversation = new Dictionary <IGeneral, string>(); GeneralConversationData general1ConversationData = InitialiseConversationData(general1); GeneralConversationData general2ConversationData = InitialiseConversationData(general2); //checks if the generals know they are in a room with a Listening Device General1InRoomWithLD = isGeneralInRoomWithListeningDevice(general1); General2InRoomWithLD = isGeneralInRoomWithListeningDevice(general2); //decises what type of conversation to have if (General1InRoomWithLD == false) { if (general1.knowenListeringDevices().Count != 0) { int inform = _randomNumber.Next(0, 1); //the second number is used to chagne the chance of informing, (1 is 50%, 2 is 33% and so on) if (inform == 0) { return(InformConversation(general1, general2, conversation, general1ConversationData, general2ConversationData)); } } } //need a if statment for the convo type return(ObjectiveConversation(general1, general2, conversation, general1ConversationData, general2ConversationData)); }
public virtual void InitInterface <T>(T inf) { if (inf is IGeneral) { api = (IGeneral)inf; } }
private void General2Inform(IGeneral general1, IGeneral general2) { if (general1.knowenListeringDevices().Count != 0) { general2.Informed(general1.knowenListeringDevices()); } general1.Informed(general2.knowenListeringDevices()); }
private static void ReplaceGeneralPostion(string userID, IGeneral replaceGeneral) { var userGeneral = new GameDataCacheSet <UserGeneral>().FindKey(userID, replaceGeneral.GeneralID); if (userGeneral != null) { userGeneral.ReplacePosition = replaceGeneral.Position; } }
private GeneralConversationData InitialiseConversationData(IGeneral general1) { GeneralConversationData conversationData = new GeneralConversationData(); conversationData.Truthfulness = CalculateGeneralTruthfulness(general1); CalculateEventPlaceTime(general1, conversationData); return(conversationData); }
/// <summary> /// 随机取 /// </summary> /// <returns></returns> public virtual IGeneral RandomGeneral() { IGeneral general = null; IGeneral[] generalList = FindAll(); if (generalList.Length > 0) { general = generalList[RandomUtils.GetRandom(0, generalList.Length)]; } return(general); }
void DisplayUsableItemsInInventory(Transform ParentTransform) { InventoryBase inventory = Inventory.Inventory; List <Button> buttonList = new List <Button>(); if (inventory.ItemsInInventory.Count > 0) { foreach (ItemSlot Slot in inventory.ItemsInInventory) { switch (Slot.Item.Type) { case ItemType.General: string ButtonText = Slot.Item.ItemName + " " + Slot.Count; Button temp = Manager.UIButton(ParentTransform, ButtonText); temp.onClick.AddListener(() => { IGeneral itemToUse = (IGeneral)Slot.Item; switch (itemToUse.GeneralItemType) { case TypeOfGeneralItem.Health: RecoveryItemSO renamelater = (RecoveryItemSO)Slot.Item; renamelater.Use(inventory, inventory.ItemsInInventory.IndexOf(Slot), baseCharacter); MenuPanelParent = CreateSub(2); break; } }); buttonList.Add(temp); // temp.navigation = Navigation.defaultNavigation; // stupid.Add(temp); break; } } } Button cancel = Manager.UIButton(ParentTransform, "Cancel"); // cancel.navigation = Navigation.defaultNavigation; cancel.onClick.AddListener(() => { MenuPanelParent = CreateMenu(); }); if (buttonList.Count > 0) { buttonList[0].Select(); } else { cancel.Select(); } }
private void SeleccionarArticulo(String ArticuloID) { //Provee el codigo del articulo a ser buscado IGeneral FormInterfaceFactura = this.Owner as IGeneral; if (FormInterfaceFactura != null) { FormInterfaceFactura.SeleccionarArticulo(ArticuloID, Seleccion); } this.Close(); }
public MonsterQueue(int plotNpcID) { var embattleList = new ConfigCacheSet <PlotEmbattleInfo>().FindAll(m => m.PlotNpcID == plotNpcID); foreach (PlotEmbattleInfo embattle in embattleList) { int index = embattle.GridSeqNo - 1; IGeneral general = Create(embattle); if (general != null) { SetQueue(index, general); } } this.PriorityNum = 0; }
/// <summary> /// 根据位置取 /// </summary> /// <param name="position"></param> /// <returns></returns> public virtual IGeneral GetGeneral(int position) { IGeneral general = null; if (position > _generalList.Length || position < 1) { return(general); } int index = position - 1; if (_generalList[index] != null && _generalList[index].LifeNum > 0) { general = _generalList[index]; } return(general); }
protected void SetQueue(int index, IGeneral general) { if (index < 0 || index > _generalList.Length - 1) { return; } if (general != null && general.IsWait) { _waitQueue.Enqueue(general); } else { _generalList[index] = general; } GeneralCount++; }
//Truthfulness to be read int value to be read as >=10 knows the truth, (after -10 if know truth) if == 1 then will lie int CalculateGeneralTruthfulness(IGeneral general) { int truthfulness = 0; if (_randomNumber.Next(10) <= general.GetKnowledge()) { truthfulness += 10; } if (_randomNumber.Next(10) <= general.GetTrust()) { truthfulness += 1; } return(truthfulness); }
/// <summary> /// Sets the queue. /// </summary> /// <param name="index">Index.</param> /// <param name="general">General.</param> protected void SetQueue(int index, IGeneral general) { if (index < 0 || index > _generalList.Length - 1) { return; } if (general != null && general.IsWait) { _waitQueue.Enqueue(general); } else { _generalList[index] = general; } GeneralCount++; }
private bool isGeneralInRoomWithListeningDevice(IGeneral general) { Room room = general.GetCharacter().CurrentRoom; List <GameObject> LD = general.knowenListeringDevices(); for (int i = 0; i < LD.Count; ++i) { if (LD[i].GetComponent <ListeningDevice>().CurrentRoom == room) { return(true); } } return(false); }
/// <summary> /// 获取下一个可战斗佣兵 /// </summary> /// <returns></returns> public virtual IGeneral NextGeneral() { IGeneral general = null; GeneralCount = _generalQueue.Count; while (_generalQueue.Count > 0) { int index = _generalQueue.Dequeue(); var temp = _generalList[index]; if (temp != null && temp.LifeNum > 0) { general = temp; break; } } return(general); }
/// <summary> /// 圣吉塔战役 /// </summary> /// <param name="plotNpcID"></param> /// <param name="difficultNum"></param> public MonsterQueue(int plotNpcID, double difficultNum) { var sjtEmbattleList = new ConfigCacheSet <SJTPlotEmbattleInfo>().FindAll(); sjtEmbattleList = sjtEmbattleList.FindAll(m => m.PlotNpcID == plotNpcID); foreach (SJTPlotEmbattleInfo embattle in sjtEmbattleList) { int index = embattle.GridSeqNo - 1; IGeneral general = Create(embattle, difficultNum); if (general != null) { SetQueue(index, general); } } this.PriorityNum = 0; }
/// <summary> /// 初始战斗入阵 /// </summary> public void ResetGeneralQueue() { IGeneral waitGeneral = PeekWaitGeneral(); for (int i = 0; i < _generalList.Length; i++) { IGeneral general = _generalList[i]; if (general == null) { continue; } if (general.LifeNum > 0) { _generalQueue.Enqueue(i); } } Number++; }
/// <summary> /// 获取攻击单位 /// </summary> /// <param name="position">攻击方的位置</param> /// <param name="attackType">攻击方式</param> /// <param name="attackTaget">攻击目标</param> /// <param name="targetEmbattle"></param> private static CombatGeneral[] GetTargetUnit(int position, AttackUnit attackType, AttackTaget attackTaget, EmbattleQueue targetEmbattle) { IGeneral[] generalList = new IGeneral[0]; List <CombatGeneral> targetGeneralList = new List <CombatGeneral>(); switch (attackType) { case AttackUnit.Single: CombatGeneral cg = null; if (attackTaget == AttackTaget.Self) { cg = (CombatGeneral)targetEmbattle.GetGeneral(position); } else { cg = (CombatGeneral)targetEmbattle.FindGeneral(position); } if (cg != null) { generalList = new IGeneral[] { cg }; } break; case AttackUnit.Horizontal: generalList = targetEmbattle.FindHorizontal(position); break; case AttackUnit.Vertical: generalList = targetEmbattle.FindVertical(position); break; case AttackUnit.All: generalList = targetEmbattle.FindAll(); break; default: break; } foreach (IGeneral general in generalList) { targetGeneralList.Add((CombatGeneral)general); } return(targetGeneralList.ToArray()); }
void CalculateEventPlaceTime(IGeneral general, GeneralConversationData conversationData) { string eventString; string place; string time; var truthful = conversationData.Truthfulness; if (truthful >= 10) { eventString = Objective.Event; place = Objective.Place; time = Objective.Time; } else { List <string> events = Objective.Events; eventString = events.ElementAt(_randomNumber.Next(events.Count)); List <string> places = Objective.Places; place = places.ElementAt(_randomNumber.Next(places.Count)); time = Objective.Time; } if (truthful == 11 || truthful == 1) { List <string> events = Objective.Events; string trueEvent = eventString; while (trueEvent.Equals(eventString)) { eventString = events.ElementAt(_randomNumber.Next(events.Count)); } List <string> places = Objective.Places; string truePlace = place; while (truePlace.Equals(place)) { place = places.ElementAt(_randomNumber.Next(places.Count)); } } conversationData.Event = eventString; conversationData.Place = place; conversationData.Time = time; }
/// <summary> /// 找所有 /// </summary> /// <returns></returns> public virtual IGeneral[] FindAll(bool isAll) { List <IGeneral> generalList = new List <IGeneral>(); for (int i = 0; i < _generalList.Length; i++) { int index = i; if (_generalList[index] != null && (isAll || _generalList[index].LifeNum > 0)) { generalList.Add(_generalList[index]); } } if (isAll && _waitQueue.Count > 0) { var tempList = new IGeneral[_waitQueue.Count]; _waitQueue.CopyTo(tempList, 0); generalList.AddRange(tempList); } return(generalList.ToArray()); }
//Conversation where they openly inform one and other about Listening Devices private Dictionary <IGeneral, string> InformConversation(IGeneral general1, IGeneral general2, Dictionary <IGeneral, string> conversation, GeneralConversationData general1ConversationData, GeneralConversationData general2ConversationData) { if (_textStatmentInform.Count != 0) { conversation.Add(general1, TextFill(_textStatmentInform.ElementAt(_randomNumber.Next(_textStatmentInform.Count)), general1ConversationData)); } else { conversation.Add(general1, "Error: Load didn't work"); } general2.Informed(general1.knowenListeringDevices()); if (general2.knowenListeringDevices().Count == 0) { if (_textRespondInform.Count != 0) { conversation.Add(general2, TextFill(_textRespondInform.ElementAt(_randomNumber.Next(_textRespondInform.Count)), general2ConversationData)); } else { conversation.Add(general2, "Error: Load didn't work"); } } else { if (_textStatmentInform.Count != 0) { conversation.Add(general2, TextFill(_textStatmentInform.ElementAt(_randomNumber.Next(_textStatmentInform.Count)), general2ConversationData)); } else { conversation.Add(general2, "Error: Load didn't work"); } general1.Informed(general2.knowenListeringDevices()); } return(conversation); }
/// <summary> /// 获取被攻击将领通过设定的优先级查找 /// </summary> /// <param name="position"></param> /// <returns></returns> public virtual IGeneral FindGeneral(int position) { IGeneral general = null; if (position > _generalList.Length || position < 1) { return(general); } int rowIndex = position % MaxNumber; int columNum = PriorityMapList.GetLength(1); for (int i = 0; i < columNum; i++) { int index = PriorityMapList[rowIndex, i] - 1; if (_generalList[index] != null && _generalList[index].LifeNum > 0) { general = _generalList[index]; break; } } return(general); }
private void btnSeleccionar_Click(object sender, EventArgs e) { try { //Refresca los cambios realizados en la tabla de clientes en el formulario de muestra IfrmAgregarEditarInventario FormInterface = this.Owner as IfrmAgregarEditarInventario; if (FormInterface != null) { if (TipoComponente == "Familia") { //LLamamos el componente de Familia FormInterface.SeleccionarFamilia(ComponenteID); } else if (TipoComponente == "Marca") { //Llamamos el componente Marca FormInterface.SeleccionarMarca(ComponenteID); } else if (TipoComponente == "UnidadEntrada") { //Llamamos el componente Unidad Entrada FormInterface.SeleccionarUnidadEntrada(ComponenteID); } else if (TipoComponente == "UnidadSalida") { //Llamamos el componente Unidad Salida FormInterface.SeleccionarUnidadSalida(ComponenteID); } } //INTERFASE DE VENTANAS DE BUSQUEDA IGeneral FormInterface2 = this.Owner as IGeneral; if (FormInterface2 != null) { if (TipoComponente == "Familia") { //LLamamos el componente de Familia FormInterface2.SeleccionarFamilia(ComponenteID); } else if (TipoComponente == "Marca") { //Llamamos el componente Marca FormInterface2.SeleccionarMarca(ComponenteID); } } Compras.iGestionDocumentoCompras FormInterfaseGestionCompras = this.Owner as Compras.iGestionDocumentoCompras; if (FormInterfaseGestionCompras != null) { FormInterfaseGestionCompras.SeleccionFamilia(ComponenteID); } this.Close(); } catch (Exception Ex) { MessageBox.Show(Ex.Message); } }
public DeleteModel(IWiskey context, IGeneral general, IOrdersAndReservations orderContext) { this.context = context; this.general = general; this.orderContext = orderContext; }
private static void ReplaceGeneralPostion(string userID, IGeneral replaceGeneral) { var userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(userID, replaceGeneral.GeneralID); if (userGeneral != null) { userGeneral.ReplacePosition = replaceGeneral.Position; } }
/// <summary> /// Inject repository /// </summary> /// <param name="documentsRepository"></param> public GenerelService(IGeneral generalRepository) { this.generalRepository = generalRepository; }
public void SetAnimation(IGeneral general, IEqip eqip, IUnEqip unEqip) { General = general; Eqip = eqip; UnEqip = unEqip; }
/// <summary> /// 获取攻击单位 /// </summary> /// <param name="position">攻击方的位置</param> /// <param name="attackType">攻击方式</param> /// <param name="attackTaget">攻击目标</param> /// <param name="targetEmbattle"></param> private static CombatGeneral[] GetTargetUnit(int position, AttackUnit attackType, AttackTaget attackTaget, EmbattleQueue targetEmbattle) { IGeneral[] generalList = new IGeneral[0]; List<CombatGeneral> targetGeneralList = new List<CombatGeneral>(); switch (attackType) { case AttackUnit.Single: CombatGeneral cg = null; if (attackTaget == AttackTaget.Self) { cg = (CombatGeneral)targetEmbattle.GetGeneral(position); } else { cg = (CombatGeneral)targetEmbattle.FindGeneral(position); } if (cg != null) { generalList = new IGeneral[] { cg }; } break; case AttackUnit.Horizontal: generalList = targetEmbattle.FindHorizontal(position); break; case AttackUnit.Vertical: generalList = targetEmbattle.FindVertical(position); break; case AttackUnit.All: generalList = targetEmbattle.FindAll(); break; default: break; } foreach (IGeneral general in generalList) { targetGeneralList.Add((CombatGeneral)general); } return targetGeneralList.ToArray(); }
public ViviendaController() { viviendaBL = new ViviendaBL(); }
/// <summary> /// 找所有 /// </summary> /// <returns></returns> public virtual IGeneral[] FindAll(bool isAll) { List<IGeneral> generalList = new List<IGeneral>(); for (int i = 0; i < _generalList.Length; i++) { int index = i; if (_generalList[index] != null && (isAll || _generalList[index].LifeNum > 0)) { generalList.Add(_generalList[index]); } } if (isAll && _waitQueue.Count > 0) { var tempList = new IGeneral[_waitQueue.Count]; _waitQueue.CopyTo(tempList, 0); generalList.AddRange(tempList); } return generalList.ToArray(); }
//Conversation where they talk objectives, this may include informing about Listening Devices private Dictionary <IGeneral, string> ObjectiveConversation(IGeneral general1, IGeneral general2, Dictionary <IGeneral, string> conversation, GeneralConversationData general1ConversationData, GeneralConversationData general2ConversationData) { //are the generals lieing? if (_textStatment.Count != 0) { conversation.Add(general1, TextFill(_textStatment.ElementAt(_randomNumber.Next(_textStatment.Count)), general1ConversationData)); } else { conversation.Add(general1, "Error: Load didn't work"); } // TODO: Need new code to generate the response type, may need more types of responses to handle this var responseType = GeneralCompare(general1ConversationData, general2ConversationData, general1, general2); string tempText = ""; switch (responseType) { case 0: tempText = _textRespondPositive.ElementAt(_randomNumber.Next(_textRespondPositive.Count)); break; case 3: tempText = _textRespondNeutral.ElementAt(_randomNumber.Next(_textRespondNeutral.Count)); break; case 10: case 17: //rand case 11: tempText = _textRespondNegativeEvent.ElementAt(_randomNumber.Next(_textRespondNegativeEvent.Count)); break; //event case 12: tempText = _textRespondNegativePlace.ElementAt(_randomNumber.Next(_textRespondNegativePlace.Count)); break; //place case 13: tempText = _textRespondNegative.ElementAt(_randomNumber.Next(_textRespondNegative.Count)); break; //event\place case 20: case 27: //rand case 21: //event case 22: //place case 23: tempText = _textRespondUnsure.ElementAt(_randomNumber.Next(_textRespondUnsure.Count)); break; //event\place case 100: tempText = _textRespondInform2.ElementAt(_randomNumber.Next(_textRespondInform2.Count)); General2Inform(general1, general2); break; default: tempText = "ERROR!!"; break; } if (responseType != 100) { if (general2.knowenListeringDevices().Count != 0) { int inform = _randomNumber.Next(0, 1); if (inform == 1) { General2Inform(general1, general2); } } } conversation.Add(general2, TextFill(tempText, general2ConversationData)); return(conversation); }
/// <summary> /// 替换等待的佣兵 /// </summary> /// <param name="position">替换的位置</param> /// <param name="waitGeneral"></param> public bool ReplaceWaitGeneral(int position, out IGeneral waitGeneral) { waitGeneral = null; position = position < 0 ? 0 : position; if (_waitQueue.Count > 0) { var general = _waitQueue.Dequeue(); if (general.LifeNum > 0) { general.IsWait = false; if (position != 0) { general.Position = position; } int index = general.Position - 1; if (index > -1 && index < _generalList.Length) { _generalList[index] = general; waitGeneral = general; } return true; } } return false; }
private int GeneralCompare(GeneralConversationData general1ConversationData, GeneralConversationData general2ConversationData, IGeneral general1, IGeneral general2) { int response = -1; string tempEvent; string tempPlace; //string tempTime = ""; //need to be added later //bool trueEvent = false; //bool truePlace = false; //bool trueTime = false; //need to be added later if (general2ConversationData.Truthfulness >= 10) { tempEvent = Objective.Event; tempPlace = Objective.Place; } else { tempEvent = general2ConversationData.Event; tempPlace = general2ConversationData.Place; } if (tempEvent.Equals(general1ConversationData.Event)) { TrueEvent = true; } if (tempPlace.Equals(general1ConversationData.Place)) { TruePlace = true; } if (isGeneralInRoomWithListeningDevice(general1)) { general1ConversationData.Lying = true; } else { switch (general1ConversationData.Truthfulness) { case 11: case 1: general1ConversationData.Lying = true; break; case 0: case 10: general1ConversationData.Lying = false; break; } } if (isGeneralInRoomWithListeningDevice(general2)) { TrueEvent = !TrueEvent; TruePlace = !TruePlace; general2ConversationData.Lying = true; } else { switch (general2ConversationData.Truthfulness) { case 11: TrueEvent = !TrueEvent; TruePlace = !TruePlace; general2ConversationData.Lying = true; break; case 1: general2ConversationData.Lying = true; break; case 0: case 10: general2ConversationData.Lying = false; break; } } if (TrueEvent && TruePlace) { //error where if one is not true then the reponce is positive, need to debug response = 0; } else if (TrueEvent && !TruePlace) { response = 12; } else if (!TrueEvent && TruePlace) { response = 11; } else if (!TrueEvent && !TruePlace) { response = 3; } if (general2ConversationData.Lying == true) { List <GameObject> general1KnowenDeives = general1.knowenListeringDevices(); List <GameObject> general2KnowenDeives = general2.knowenListeringDevices(); bool match = true; for (int i = 0; i < general1KnowenDeives.Count; ++i) { for (int j = 0; j < general2KnowenDeives.Count; ++j) { if (general1KnowenDeives[i] != general2KnowenDeives[j]) { match = false; j += general2KnowenDeives.Count; i += general1KnowenDeives.Count; } } } if (match == false) { int num = _randomNumber.Next(10); if (num < 5) { response = 100; } } } return(response); }