Postby SekoETC » Tue Dec 22, 2009 6:10 pm
I think the most simple way of doing it would be allowing people to take resources from projects just as easily as they were added, and once all the resources have been removed, the project could be canceled like any project that never had resources added in the first place. But if the project had already been worked on, resources could no longer be removed (although a way of working backwards to cancel progress would be good, as suggested in the past). Also if someone was currently working on the project, even if it was still at 0%, resources couldn't be removed.
The question is, do we really want resources included in a project to be protected against theft when no one is working on it? If yes, I think rather than using arbitrary protection times, projects should be "guarded" by the initiator and potentially other people who want to ensure that theft won't happen. When someone starts a project, it would automatically be added to their guarded list and they could stop guarding it if they prefer. Also guarding would only work when the person and the project are in the same location, so if the initiator left the location, he or she would have to ask someone else to guard it.
I think rather than using error messages, if someone tried to take resources from a guarded project, it would give an event message that says: "You try to take RESOURCE from project XYZ but GUARD(S) won't allow it." People involved would get "ACTOR tries to take RESOURCE from project XYZ but you won't allow it." In order to steal from a guarded project, the thief would have to drag away or kill all the people guarding it. At the moment I don't think there should be any limitations on how many projects one can guard. They would only be visible when in the same location and would be deleted from the table if the project gets finished or canceled, so it wouldn't get too bloated.
Not-so-sad panda