Skip to content

ProjectGenerator

xxr5566833 edited this page Dec 11, 2017 · 4 revisions

ProjectGenerator

委托任务发布类

properties:

Project[3] projects_

保存了上次产生的 3个任务的信息

object[] projs_

是从json文件中读取出来的委托任务的project的信息列表,初始化project需要用到列表中的信息,具体属性规定在ConsignProjectInfo文件中

number[] availableList_

这个列表表示当前被解锁的project的index_属性的列表,具体的解锁机制简单的说就是树,子节点都完成了父节点才能解锁

目前生成3个任务的机制就是:从this.avaliableList_中随机取三个不同下标,然后生成这三个下标对应的project

functions:

void failProject(Project project)

任务失败,降低信誉,弹出信息

  • 具体参数为event.detail.change = -2(未完成-2), "CREDITCHANGE"

  • 设置event.detail.id = consignprojectfail ,"MESSAGE"

修改

void finishProject(Project project)

任务成功,获取报酬,提高信誉,弹出信息,解锁任务

  • 根据这个 project 返回这个任务的报酬,设置event.detail.record = "委托任务完成","MONEYADD"

  • 具体参数为event.detail.change = 1(目前定为没完成一个外包加1),"CREDITCHANGE"

  • 设置event.detail.id = consignprojectfinish,"MESSAGE"

  • 调用 this.updateAvailable(project.getIndex()),表示可能有新的任务解锁

void updateAll()

首先根据this.availableList的长度生成3个不同的在[0,length-1]范围内的随机数

获得这三个随机数对应的index

对每一个index生成对应的project并保存到属性this.projects_

Project[] getProjects()

返回this.projects_

##修改

void updateAvailable(index)

index表示刚刚完成的任务的唯一标识码,也是this.projs的这个任务原始信息的下标

前面的逻辑后面再补。。这里需要在if(available){}中把原来的this.msgBoxControl和三个console换成抛出事件逻辑,具体参数为event.detail.id = consignprojectunlock,"MESSAGE"

Clone this wiki locally