修改 Update

Update/Where/Set命令通过主键来定位条目,并对条目的属性进行修改。

一个简单的例子,我们如果要提高小麦的产量(原来是1,修改到2),先找到小麦的定义,它在Resources.xml中:

<GameInfo>
    <Kinds>
        <Row Kind="KIND_RESOURCE"/>
    </Kinds>
    <Types>
        <!-- Bonus -->
        <Row Type="RESOURCE_BANANAS" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_CATTLE" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_COPPER" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_CRABS" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_DEER" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_FISH" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_RICE" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_SHEEP" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_STONE" Kind="KIND_RESOURCE"/>
        <Row Type="RESOURCE_WHEAT" Kind="KIND_RESOURCE"/>
        ...
    </Types>
    <Resources>
        ...
        <Row ResourceType="RESOURCE_WHEAT" Name="LOC_RESOURCE_WHEAT_NAME" ResourceClassType="RESOURCECLASS_BONUS" Frequency="10"/>
        ...
    </Resources>
    <Resource_YieldChanges>
        ...
        <Row ResourceType="RESOURCE_WHEAT" YieldType="YIELD_FOOD" YieldChange="1"/>
        ...
    </Resource_YieldChanges>

其中,对小麦产量造成影响的是在Resource_YieldChanges这个中,它指定了资源种类ResourceType产物种类YieldType产量变化YieldChange,其中YieldChange的值我们需要修改为2。

通过查看Assets/GamePlay/Data/Schema/01_GameplaySchema.sql文件,我们可以查询到Resource_YieldChanges表的主键是ResourceTypeYieldType

CREATE TABLE "Resource_YieldChanges" (
        "ResourceType" TEXT NOT NULL,
        "YieldType" TEXT NOT NULL,
        "YieldChange" INTEGER NOT NULL,
        PRIMARY KEY(ResourceType, YieldType),
        FOREIGN KEY (ResourceType) REFERENCES Resources(ResourceType) ON DELETE CASCADE ON UPDATE CASCADE,
        FOREIGN KEY (YieldType) REFERENCES Yields(YieldType) ON DELETE CASCADE ON UPDATE CASCADE);

因此,我们需要这么写:

<Resource_YieldChanges>
  <Update>
    <Where ResourceType="RESOURCE_WHEAT" YieldType="YIELD_FOOD"/>
    <Set YieldChange="2"/>
  </Update>
</Resource_YieldChanges>

其中,Where中指定了条目的主键,从而查阅到“小麦的食物产量”这一条目,Set指定了需要修改的内容,即“2”。

又比如说,我们需要修改小麦出现的频率,由于Resources的主键是ResourceType,因此:

<Resources>
  <Update>
    <Where ResourceType="RESOURCE_WHEAT"/>
    <Set Frequency="20"/>
  </Update>
</Resources>

这样,我们便将小麦的出现频率翻了倍。

results matching ""

    No results matching ""