﻿<?xml version="1.0" encoding="utf-8"?>
<package xmlns:dm0="http://schemas.microsoft.com/VisualStudio/2008/DslTools/Core" xmlns:dm1="http://schemas.microsoft.com/dsltools/Kernel" xmlns:dm2="http://schemas.microsoft.com/dsltools/Component" xmlns:dm3="http://schemas.microsoft.com/dsltools/UseCase" xmlns:dm4="http://schemas.microsoft.com/dsltools/Activity" xmlns:dm5="http://schemas.microsoft.com/dsltools/Interaction" xmlns:dm6="http://schemas.microsoft.com/dsltools/UmlModelLibrary" xmlns:dm7="http://schemas.microsoft.com/dsltools/UmlDiagrams" xmlns:dm8="http://schemas.microsoft.com/dsltools/LogicalClassDesigner"
  dslVersion="1.0.0.0"
  Id="8fed8614-0999-446d-b8c4-277103a01161"
  name="Events" xmlns="http://schemas.microsoft.com/dsltools/ModelStore">
  <ownedCommentsInternal>
    <comment
      Id="b9aac93e-f4d7-437f-86f5-7e4067612d02">
      <body>Initialize() adds all the IEvents to eventList</body>
      <annotatedElements>
        <classMoniker
          Id="bf2616ce-c2cd-4f5a-975b-07c1094d7b00"
          LastKnownName="IEventManager"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="72f4f4e0-135e-4b46-a418-cd42fe145cbc">
      <body>Takes some number of IEventParams to define what the event is</body>
      <annotatedElements>
        <classMoniker
          Id="bf2616ce-c2cd-4f5a-975b-07c1094d7b00"
          LastKnownName="IEventManager"
          LastKnownLocation="Package_1303.uml" />
        <interfaceMoniker
          Id="e86a640e-488d-4afa-9193-d563c5a41c6d"
          LastKnownName="IEventDefinition"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="8ad5d8ec-b8a8-4424-968c-081e29fff366">
      <body>Event factory constructs all rolls &amp; data calls and comparisons for EventData</body>
      <annotatedElements>
        <interfaceMoniker
          Id="e86a640e-488d-4afa-9193-d563c5a41c6d"
          LastKnownName="IEventDefinition"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="a43d12ff-4710-4964-b91b-db2361177278">
      <body>Who holds this?
Should be some kind of queue that execute events</body>
      <annotatedElements>
        <classMoniker
          Id="ee90775d-3870-4913-8815-d2a476da93b4"
          LastKnownName="EventData"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="114892a0-8ebb-4c98-bbc6-c6cd4058917e">
      <body>Singleton</body>
      <annotatedElements>
        <classMoniker
          Id="bf2616ce-c2cd-4f5a-975b-07c1094d7b00"
          LastKnownName="IEventManager"
          LastKnownLocation="Package_1303.uml" />
        <classMoniker
          Id="988e4e6f-7fa0-49bd-a057-96e627f6091f"
          LastKnownName="CombatProcess"
          LastKnownLocation="Package_1941.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="12ca9c53-64bd-47f6-a36d-bfd09b8a081e">
      <body>Code tells about what is happening in this phase of the event</body>
      <annotatedElements>
        <enumerationMoniker
          Id="50b3dca4-0e81-4eb5-a787-ad255b646537"
          LastKnownName="EventPhaseCode"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="cbfe904c-a0a3-4a50-82c9-86418dbab594">
      <body>EventData should store all info about a specific event</body>
      <annotatedElements>
        <classMoniker
          Id="ee90775d-3870-4913-8815-d2a476da93b4"
          LastKnownName="EventData"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="05031a97-f5a0-48f0-8b45-b10e317ed294">
      <body>What determines a phase? It should be a comparison, right?</body>
      <annotatedElements>
        <classMoniker
          Id="6fa23a10-f7c4-4977-b3b3-b629dc72c75a"
          LastKnownName="EventPhase"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="f4abbb08-6485-4436-8595-b27afd57cc06">
      <body>Where should the events of a phase/event actually update entities and other things that are affected by the action/event?</body>
      <annotatedElements>
        <classMoniker
          Id="6fa23a10-f7c4-4977-b3b3-b629dc72c75a"
          LastKnownName="EventPhase"
          LastKnownLocation="Package_1303.uml" />
        <classMoniker
          Id="ee90775d-3870-4913-8815-d2a476da93b4"
          LastKnownName="EventData"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="e0c52844-0686-48ab-8410-97052a966721">
      <body>Should it be taken care of in the event definition, or somewhere else?</body>
      <annotatedElements>
        <commentMoniker
          Id="f4abbb08-6485-4436-8595-b27afd57cc06"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
    <comment
      Id="d4985de2-7bc4-406b-8481-cbb0794edbaf">
      <body>Maybe an Evaluator? Passed as a function?
Should really be an "Executor"</body>
      <annotatedElements>
        <commentMoniker
          Id="f4abbb08-6485-4436-8595-b27afd57cc06"
          LastKnownLocation="Package_1303.uml" />
      </annotatedElements>
    </comment>
  </ownedCommentsInternal>
  <packagedElements>
    <packageHasNamedElement>
      <enumeration
        Id="92c8e46c-e321-4bca-b7dd-a03f8b98dd8a"
        name="EventCode"
        isAbstract="false"
        isLeaf="false" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="e86a640e-488d-4afa-9193-d563c5a41c6d"
        name="IEventDefinition"
        isAbstract="false"
        isLeaf="false">
        <targetEnds>
          <association
            Id="2afc2840-344b-45e5-b94c-018ddbd1bc6c"
            isDerived="false"
            sourceEndRoleName="EvCode"
            targetEndRoleName="EventCode"
            isLeaf="false"
            isAbstract="false">
            <enumerationMoniker
              Id="92c8e46c-e321-4bca-b7dd-a03f8b98dd8a"
              LastKnownName="EventCode"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ad945b8d-879d-45b0-944c-b4d291ee703e"
                  name="EvCode"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="a11e6b61-3256-444b-9304-4d35d86064c4"
                  name="EventCode"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="0f1e263c-1fd5-4d80-a2e9-28aa0e7e03b5"
            isDerived="false"
            sourceEndRoleName="ProcessEvent()"
            targetEndRoleName="EventData"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="ee90775d-3870-4913-8815-d2a476da93b4"
              LastKnownName="EventData"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="ef8af745-3f46-410d-80a1-e4e59fc5c5e9"
                  name="ProcessEvent()"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="a58ff6e8-9b6e-444d-93bd-ac30fde46dc9"
                  name="EventData"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributes>
          <property
            Id="d4cc0d0a-98cd-4da3-8d69-228f58b0c799"
            name="EvCode"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false" />
        </ownedAttributes>
        <ownedOperations>
          <operation
            Id="9dde0023-a0ae-4bf2-b9e5-5014eab166d9"
            name="ProcessEvent"
            isLeaf="false"
            isStatic="false"
            isAbstract="true"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="11eedb79-5d64-456e-a4f2-0db33f77b2bd"
                  direction="Return"
                  isUnique="false">
                  <type_NamedElement>
                    <classMoniker
                      Id="ee90775d-3870-4913-8815-d2a476da93b4"
                      LastKnownName="EventData"
                      LastKnownLocation="Package_1303.uml" />
                  </type_NamedElement>
                </parameter>
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="e58c801b-b582-4c34-b527-1b33df859f38"
                  name="params IEventParam[] e"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperations>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <packageMoniker
        Id="162d686e-0ff2-4109-969e-b769bf6b03a9"
        LastKnownName="Package1"
        LastKnownLocation="Package_2200.uml" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="bf2616ce-c2cd-4f5a-975b-07c1094d7b00"
        name="IEventManager"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="0730ee99-b6e9-4415-95d9-c59aeba1e233"
            isDerived="false"
            sourceEndRoleName="eventList"
            targetEndRoleName="IEvent"
            isLeaf="false"
            isAbstract="false">
            <interfaceMoniker
              Id="e86a640e-488d-4afa-9193-d563c5a41c6d"
              LastKnownName="IEventDefinition"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="b588f76d-a5e2-4982-9268-d69b634885a0"
                  name="eventList"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="f69e82b6-00d1-4622-95b5-2bf6adc80435"
                  name="IEvent"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false">
                  <lowerValueInternal>
                    <literalString
                      Id="b48fdc8b-123f-4619-ac1c-9cbcfbd14196"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="f6b73b3e-9d95-4501-9725-90350143aa8f"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="4ce25c5c-0702-4c6a-b810-d4f941632d26"
            name="eventList"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="5dd53a60-9df8-49a8-82a3-ed497ed55f79"
                LastKnownName="Dictionary&lt;int,IEvent&gt;"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
        <ownedOperationsInternal>
          <operation
            Id="f7095924-1659-42ac-924c-54df2ec7297d"
            name="Initialize"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false" />
          <operation
            Id="3f6d2f21-0b49-474f-af7c-3f216af3679a"
            name="TriggerEvent"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="13514016-bc04-4012-8c0d-a5790a7c26b4"
                  name="int evCode"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="061d0ff5-7428-4bf4-99fd-b94fab01771d"
                  name="params IEventParam[] e"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="5dd53a60-9df8-49a8-82a3-ed497ed55f79"
        name="Dictionary&lt;int,IEvent&gt;" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="ee90775d-3870-4913-8815-d2a476da93b4"
        name="EventData"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="68ecadc0-73d3-4add-b29c-c459ad5ca0a6"
            isDerived="false"
            sourceEndRoleName="Phases"
            targetEndRoleName="Context"
            isLeaf="false"
            isAbstract="false">
            <classMoniker
              Id="6fa23a10-f7c4-4977-b3b3-b629dc72c75a"
              LastKnownName="EventPhase"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="35ea7136-735e-4fb8-88c7-ec6ee2ab11f4"
                  name="Phases"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="178d78b6-5bc9-4093-9a42-fefa3945b60b"
                  name="Context"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false">
                  <lowerValueInternal>
                    <literalString
                      Id="872cf108-0b6c-4728-a654-c41d95d08435"
                      name="Lower"
                      value="*" />
                  </lowerValueInternal>
                  <upperValueInternal>
                    <literalString
                      Id="aa8a038b-05af-47c9-b73a-a6c0fc8fb586"
                      name="Upper"
                      value="*" />
                  </upperValueInternal>
                </memberEnd>
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="9c95d75a-bb72-4cf3-9150-265190cbb0f6"
            name="Phases"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="455c396f-f160-4f33-b1e4-b7ea347429fa"
                LastKnownName="List&lt;EventPhase&gt;"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
        <ownedOperationsInternal>
          <operation
            Id="9e880355-ffce-410a-94b1-eb13498bcea4"
            name="AddPhase"
            isLeaf="false"
            isStatic="false"
            isAbstract="false"
            concurrency="Sequential"
            isQuery="false">
            <ownedParameters>
              <operationHasOwnedParameters>
                <parameter
                  Id="c4312bf9-8517-48d5-896d-33d1d6b6a971"
                  name="EventPhase p"
                  direction="In"
                  isUnique="false" />
              </operationHasOwnedParameters>
            </ownedParameters>
          </operation>
        </ownedOperationsInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="11f3e3e0-3ceb-4461-8298-0f736e11452c"
        name="IData" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <Interface
        Id="baab89e7-7ef3-4a8c-8e8e-bed74a9c58d1"
        name="IEventComponent"
        isAbstract="false"
        isLeaf="false">
        <ownedAttributes>
          <property
            Id="34587f3c-42c1-4fd8-bc3c-4be0ce2cb798"
            name="Context"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <classMoniker
                Id="6fa23a10-f7c4-4977-b3b3-b629dc72c75a"
                LastKnownName="EventPhase"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributes>
      </Interface>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="97db40f5-429c-48ea-9bbf-e2dd86dd12e6"
        name="Queue&lt;EventData&gt;" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <class
        Id="6fa23a10-f7c4-4977-b3b3-b629dc72c75a"
        name="EventPhase"
        isAbstract="false"
        isLeaf="false"
        isActiveClass="false">
        <targetEnds>
          <association
            Id="1c617498-3e63-4067-bca9-6be9b33ecec6"
            isDerived="false"
            sourceEndRoleName="PhaseCode"
            targetEndRoleName="EventPhaseCode"
            isLeaf="false"
            isAbstract="false">
            <enumerationMoniker
              Id="50b3dca4-0e81-4eb5-a787-ad255b646537"
              LastKnownName="EventPhaseCode"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="96db68bf-60b8-4a09-a4da-7df9b14c9d55"
                  name="PhaseCode"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false"
                  isNavigableOwned="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="d63973e0-64d9-469f-b534-ff8ce46af9b7"
                  name="EventPhaseCode"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
          <association
            Id="6180a1e4-cea7-45b2-9034-c2a0a74ae945"
            isDerived="false"
            sourceEndRoleName="EvComp"
            targetEndRoleName="Context"
            isLeaf="false"
            isAbstract="false">
            <interfaceMoniker
              Id="baab89e7-7ef3-4a8c-8e8e-bed74a9c58d1"
              LastKnownName="IEventComponent"
              LastKnownLocation="Package_1303.uml" />
            <relationshipOwnedElementsInternal>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="441dc26f-84d7-4d50-99ac-28a17fb72d19"
                  name="EvComp"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
              <associationHasOwnedEnds>
                <memberEnd
                  Id="162f1cc8-a87a-41e9-950d-e3a0536135b5"
                  name="Context"
                  isLeaf="false"
                  isStatic="false"
                  isReadOnly="false"
                  isDerived="false"
                  isDerivedUnion="false"
                  aggregation="None"
                  isComposite="false" />
              </associationHasOwnedEnds>
            </relationshipOwnedElementsInternal>
          </association>
        </targetEnds>
        <ownedAttributesInternal>
          <property
            Id="ccde5d03-2216-4bae-be15-14f8a76554d0"
            name="PhaseCode"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <undefinedTypeMoniker
                Id="825f1714-82b3-47fd-8ccb-4042a0def4ee"
                LastKnownName="int"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="4df2066d-f7d5-403d-83a6-149f86e5fbe7"
            name="EvComp"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <interfaceMoniker
                Id="baab89e7-7ef3-4a8c-8e8e-bed74a9c58d1"
                LastKnownName="IEventComponent"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
          <property
            Id="ae14cd30-7674-4a11-9c5b-21aeec34f9c6"
            name="Context"
            isLeaf="false"
            isStatic="false"
            isReadOnly="false"
            isUnique="false"
            isDerived="false"
            isDerivedUnion="false"
            aggregation="None"
            isComposite="false">
            <type_NamedElement>
              <classMoniker
                Id="ee90775d-3870-4913-8815-d2a476da93b4"
                LastKnownName="EventData"
                LastKnownLocation="Package_1303.uml" />
            </type_NamedElement>
          </property>
        </ownedAttributesInternal>
      </class>
    </packageHasNamedElement>
    <packageHasNamedElement>
      <enumeration
        Id="50b3dca4-0e81-4eb5-a787-ad255b646537"
        name="EventPhaseCode"
        isAbstract="false"
        isLeaf="false" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="825f1714-82b3-47fd-8ccb-4042a0def4ee"
        name="int" />
    </packageHasNamedElement>
    <packageHasNamedElement>
      <undefinedType
        Id="455c396f-f160-4f33-b1e4-b7ea347429fa"
        name="List&lt;EventPhase&gt;" />
    </packageHasNamedElement>
  </packagedElements>
</package>