Beispiel #1
0
 /// <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);
 }
Beispiel #2
0
        /// <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());
        }
Beispiel #3
0
 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));
        }
Beispiel #5
0
 public SJTMonsterQueue(IGeneral general)
 {
     if (general != null)
     {
         SetQueue(general.Position - 1, general);
     }
 }
Beispiel #6
0
 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());
 }
Beispiel #8
0
        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);
        }
Beispiel #10
0
        /// <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);
        }
Beispiel #11
0
        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();
            }
        }
Beispiel #12
0
        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();
        }
Beispiel #13
0
        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;
        }
Beispiel #14
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);
        }
Beispiel #15
0
 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);
        }
Beispiel #17
0
		/// <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);
        }
Beispiel #19
0
        /// <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);
        }
Beispiel #20
0
        /// <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;
        }
Beispiel #21
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++;
        }
Beispiel #22
0
        /// <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;
        }
Beispiel #24
0
        /// <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);
        }
Beispiel #26
0
        /// <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);
        }
Beispiel #27
0
        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;
 }
Beispiel #29
0
 private static void ReplaceGeneralPostion(string userID, IGeneral replaceGeneral)
 {
     var userGeneral = new GameDataCacheSet<UserGeneral>().FindKey(userID, replaceGeneral.GeneralID);
     if (userGeneral != null)
     {
         userGeneral.ReplacePosition = replaceGeneral.Position;
     }
 }
Beispiel #30
0
 /// <summary>
 /// Inject repository
 /// </summary>
 /// <param name="documentsRepository"></param>
 public GenerelService(IGeneral generalRepository)
 {
     this.generalRepository = generalRepository;
 }
Beispiel #31
0
 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();
 }
Beispiel #33
0
 public ViviendaController()
 {
     viviendaBL = new ViviendaBL();
 }
Beispiel #34
0
 /// <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);
        }
Beispiel #36
0
 /// <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);
        }