public void InitialDefenseObject(List <DefenseObjectData> objects)
 {
     foreach (DefenseObjectData o in objects)
     {
         DefenseObjectLogicObject logicObject = new DefenseObjectLogicObject(o);
         this.m_DefenseObjects.Add(logicObject.Data.DefenseObjectID, logicObject);
     }
 }
    private void ReceivedDefenseObjectResponse(AddDefenseObjectResponseParameter param)
    {
        DefenseObjectLogicObject logicObject = this.m_UnreceivedIDObjects[0].Value;

        logicObject.Add(param.DefenseObjectID);
        this.m_DefenseObjects.Add(param.DefenseObjectID, logicObject);
        this.m_UnreceivedIDObjects.RemoveAt(0);

        CommunicationNotificationCenter.Instance.OnAddDefenseObjectResponse -= ReceivedDefenseObjectResponse;
    }
    public DefenseObjectLogicData AddDefenseObject(int propsNo, TilePosition position)
    {
        DefenseObjectData data = new DefenseObjectData();

        data.Position        = position;
        data.DefenseObjectID = --this.m_TempID;
        data.Name            = LogicController.Instance.GetProps(propsNo).Name;
        data.ConfigData      = new DefenseObjectConfigWrapper(LogicController.Instance.GetProps(propsNo).FunctionConfigData);
        DefenseObjectLogicObject logicObject = new DefenseObjectLogicObject(data);

        CommunicationNotificationCenter.Instance.OnAddDefenseObjectResponse += ReceivedDefenseObjectResponse;

        this.m_UnreceivedIDObjects.Add(new KeyValuePair <long, DefenseObjectLogicObject>(data.DefenseObjectID, logicObject));

        AddDefenseObjectRequestParameter request = new AddDefenseObjectRequestParameter();

        request.PropsNo        = propsNo;
        request.PositionRow    = position.Row;
        request.PositionColumn = position.Column;

        CommunicationNotificationCenter.Instance.AddDefnseObject(request);

        return(logicObject.Data);
    }